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请求读写缓存可跟据程序平均请求资源大小设置。

 

posted @ 2018-08-30 15:42  kevin.Xiang  阅读(2913)  评论(0编辑  收藏  举报