Linux 系统TCP连接内存大小限制 调优
系统TCP连接内存大小限制
- TCP的每一个连接请求,读写都需要占用系统内存资源,可根据系统配置,对TCP连接数,内存大小,限制调优。
查看系统内存资源
记录内存 详情:cat /proc/meminfo
命令:free -m
TCP连接内存限制 内核调优
修改文件:/etc/sysctl.conf
生效命令:sysctl -p /etc/sysctl.conf
1、限制TCP总连接内存使用
# 内核分给TCP的内存大小范围,单位为page。 # 第一个数字表示,当 tcp 使用的 page 少于 196608 时,kernel 不对其进行任何的干预 # 第二个数字表示,当 tcp 使用了超过 262144 的 pages 时,kernel 会进入 “memory pressure” 压力模式 # 第三个数字表示,当 tcp 使用的 pages 超过 393216 时就会报:Out of socket memory。 net.ipv4.tcp_mem = 196608 262144 393216
注:最大范围可根据系统内存大小进行设置。
注:内核分配给TCP连接的内存,单位是Page,1 Page = 4096 Bytes。
注:查看分配给TCP连接得内存:getconf PAGESIZE
2、限制TCP单连接读写内存使用
# TCP连接读缓存大小。最小内存 缺省内存 最大内存(单位为:Byte字节) net.ipv4.tcp_rmem = 4096 4096 1073741824 # TCP连接写缓存大小。最小内存 缺省内存 最大内存(单位为:Byte字节) net.ipv4.tcp_wmem = 4096 4096 1073741824
注:4.0G TCP内存能容纳的连接数读写相加: 4000M/8 = 500K = 50万并发
注:TCP请求读写缓存可跟据程序平均请求资源大小设置。