Linux TCP 缓冲区参数调优

您所在的位置:网站首页 socket接收缓存 Linux TCP 缓冲区参数调优

Linux TCP 缓冲区参数调优

2023-08-28 14:52| 来源: 网络整理| 查看: 265

 

系统原值:

[wqf@admin autopush]$ cat /proc/sys/net/core/rmem_max 4194304 [wqf@admin autopush]$ cat /proc/sys/net/core/wmem_max 1048576 [wqf@admin autopush]$ cat /proc/sys/net/ipv4/tcp_rmem 4096 87380 4194304 [wqf@admin autopush]$ cat /proc/sys/net/ipv4/tcp_wmem 4096 16384 4194304 [wqf@admin autopush]$ cat /proc/sys/net/ipv4/tcp_mem 3073344 4097792 6146688

设置值:

#如此操作后的设置在系统重启后会恢复为原值 echo 16777216 > /proc/sys/net/core/rmem_max echo 16777216 > /proc/sys/net/core/wmem_max echo "4096 873800 16777216" > /proc/sys/net/ipv4/tcp_rmem echo "4096 873800 16777216" > /proc/sys/net/ipv4/tcp_wmem echo "3073344 4097792 16777216" > /proc/sys/net/ipv4/tcp_mem

解析:

tcp_wmem(3个INTEGER变量): min, default, maxmin:为TCP socket预留用于发送缓冲的内存最小值。每个tcp socket都可以在建议以后都可以使用它。默认值为4096(4K)。default:为TCP socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmem_default 值,一般要低于net.core.wmem_default的值。默认值为16384(16K)。max: 用于TCP socket发送缓冲的内存最大值。该值不会影响net.core.wmem_max,"静态"选择参数SO_SNDBUF则不受该值影响。默认值为131072(128K)。(对于服务器而言,增加这个参数的值对于发送数据很有帮助)

tcp_mem(3个INTEGER变量):low, pressure, highlow:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。(理想情况下,这个值应与指定给 tcp_wmem 的第 2 个值相匹配 - 这第 2 个值表明,最大页面大小乘以最大并发请求数除以页大小 (131072 * 300 / 4096)。 )pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。(理想情况下这个值应该是 TCP 可以使用的总缓冲区大小的最大值 (204800 * 300 / 4096)。 )high:允许所有tcp sockets用于排队缓冲数据报的页面量。(如果超过这个值,TCP 连接将被拒绝,这就是为什么不要令其过于保守 (512000 * 300 / 4096) 的原因了。 在这种情况下,提供的价值很大,它能处理很多连接,是所预期的 2.5 倍;或者使现有连接能够传输 2.5 倍的数据。 我的网络里为192000 300000 732000)

 

 

对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失。若要永久性设置,则在文件/etc/sysctl.conf中设置如下:

net.core.rmem_default = 16777216

net.core.rmem_max = 16777216

net.core.wmem_default = 16777216

net.core.wmem_max = 16777216

net.ipv4.tcp_mem = 6177504 8236672 16777216

net.ipv4.tcp_rmem = 4096 873800 16777216

net.ipv4.tcp_wmem = 4096 873800 16777216

/etc/sysctl.conf是一个允许你改变正在运行中的Linux系统的接口。它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,可用来控制Linux网络配置,由于/proc/sys/net目录内容的临时性,建议把TCPIP参数的修改添加到/etc/sysctl.conf文件, 然后保存文件,使用命令“/sbin/sysctl –p”使之立即生效。

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3