系統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請求讀寫緩存可跟據程序平均請求資源大小設置。
