linux网络参数解析

linux网络参数主要位于下面两个目录下:/proc/sys/net/core/和/proc/sys/net/ipv4/, 下面分别对这两个目录下常用的几个网络参数做下说明:

1./proc/sys/net/core/

$ /proc/sys/net/core/somaxconn
listen()的默认参数,挂起请求的最大数量.默认是128.对繁忙的服务器,增加该值有助于网络性能, 可参考的优化值:2048

$ /proc/sys/net/core/wmem_max
最大socket写buffer,可参考的优化值:131071

$ /proc/sys/net/core/rmem_max
最大socket读buffer,可参考的优化值:131071

$ /proc/sys/net/core/netdev_max_backlog
进入包的最大设备队列.默认是300,对重负载服务器而言,该值太低,可参考的优化值:1000

$ /proc/sys/net/core/optmem_max
socket buffer的最大初始化值,默认10K,可参考的优化值:20480

2./proc/sys/net/ipv4/

$/proc/sys/net/ipv4/tcp_tw_recycle

加快回收TIME-WAIT套接字.0:关闭;1:开启

$/proc/sys/net/ipv4/tcp_tw_reuse

复用TIME_WAIT状态socket的开关,如果开启,客户端在调用connect调用时,会自动复用TIME_WAIT状态的端口.0:关闭;1:开启

$/proc/sys/net/ipv4/tcp_max_tw_buckets

The tcp_max_tw_buckets variable tells the system the maximum number of sockets in TIME-WAIT to be held simultaneously. If this number is exceeded, the exceeding sockets are destroyed and a warning message is printed to you. The reason for this limit to exist is to get rid of really simple DoS attacks.

The tcp_max_tw_buckets variable takes an integer value which tells the system at which point to start destroying timewait sockets. The default value is set to 180000. This may sound much, but it is not. If anything, you should possibly need to increase this value if you start receiving errors due to this setting.

$ /proc/sys/net/ipv4/tcp_wmem
TCP写buffer,可参考的优化值: 4096    16384   131072

$ /proc/sys/net/ipv4/tcp_rmem
TCP读buffer,可参考的优化值: 4096    87380   174760

(8)net.ipv4.tcp_timestamps
$ /proc/sys/net/ipv4/tcp_mem
同样有3个值,意思是:
net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力.
net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段.
net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket.
上述内存单位是页,而不是字节.
可参考的优化值是:196608  262144  393216

$ /proc/sys/net/ipv4/tcp_max_syn_backlog
进入SYN包的最大请求队列.默认1024.对重负载服务器而言,可适当调高.当TCP开始建立联机时,会使用“三次握手”的机制,首先系统会发送“SYN”数据包,对方须回传“ACK”数据包,再从系统发送出“SYN+ACK”代 表完成联机。这操作看似简单,但当联机数据众多时,比如开许多IE浏览网页时就会有很多次三方握手的操作。一般情况下很正常,但如果对方的系统在收到 SYN时就已经离线,本机系统会等不到对方回传的“ACK”数据包,必须先记下目前已发送“SYN”的联机有多少,这参数的目的就是定义“已发送SYN数 据包的联机数目最大值”为多少,目前一般的系统(大于16MB)默认值都是1024

$ /proc/sys/net/ipv4/tcp_timestamps 缺省值为1
Timestamps 用在其它一些东西中﹐可以防范那些伪造的 sequence 号码。一条1G的宽带线路或许会重遇到带 out-of-line数值的旧sequence 号码(假如它是由于上次产生的)。Timestamp 会让它知道这是个 ‘旧封包’。(该文件表示是否启用以一种比超时重发更精确的方法(RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项。)

$ /proc/sys/net/ipv4/tcp_retries2
TCP失败重传次数,默认值15,意味着重传15次才彻底放弃.可减少到5,以尽早释放内核资源.

$ /proc/sys/net/ipv4/tcp_keepalive_time
$ /proc/sys/net/ipv4/tcp_keepalive_intvl
$ /proc/sys/net/ipv4/tcp_keepalive_probes
这3个参数与TCP KeepAlive有关.默认值是:
tcp_keepalive_time = 7200 seconds (2 hours)
tcp_keepalive_probes = 9
tcp_keepalive_intvl = 75 seconds
意思是如果某个TCP连接在idle 2个小时后,内核才发起probe.如果probe 9次(每次75秒)不成功,内核才彻底放弃,认为该连接已失效.对服务器而言,显然上述值太大. 可调整到:
/proc/sys/net/ipv4/tcp_keepalive_time  1800
/proc/sys/net/ipv4/tcp_keepalive_intvl  30
/proc/sys/net/ipv4/tcp_keepalive_probes  3

$ proc/sys/net/ipv4/ip_local_port_range
指定端口范围的一个配置,默认是32768   61000,已够大.

转载于:https://my.oschina.net/pzh0819/blog/164211

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值