1. 程式人生 > >修改tcp連接設置

修改tcp連接設置

tcp linux


查看現在設置的多少tcp連接:ulimit -n //如果是65535,已經最大

如果還是不夠用,修改配置文件

vi /etc/sysctl.conf

添加

net.ipv4.ip_conntrack_max = 65534

#表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉;
net.ipv4.tcp_tw_reuse = 1

sysctl -p //馬上生效


以下轉自:http://willvvv.iteye.com/blog/1558321


1.Linux系統設置優化,vi /etc/sysctl.conf,添加以下內容

Sysctl.conf代碼 技術分享

  1. fs.file-max = 65535

  2. kernel.pid_max = 65536

  3. net.ipv4.tcp_syncookies = 1

  4. net.ipv4.tcp_synack_retries = 2

  5. net.ipv4.tcp_syn_retries = 2

  6. net.ipv4.tcp_timestsmps = 0

  7. net.ipv4.tcp_tw_reuse = 1

  8. net.ipv4.tcp_tw_recycle = 1

  9. net.ipv4.tcp_fin_timeout = 30

  10. net.ipv4.tcp_keepalive_time = 1200

  11. net.ipv4.ip_local_port_range = 10000

    65535

  12. net.ipv4.tcp_max_syn_backlog = 8192

  13. net.ipv4.tcp_max_tw_buckets = 5000

  14. net.ipv4.tcp_wmem = 8192 436600 873200

  15. net.ipv4.tcp_rmem = 32768 436600 873200

  16. net.ipv4.tcp_mem = 94500000 91500000 92700000

  17. net.ipv4.tcp_max_orphans = 3276800

  18. net.core.netdev_max_backlog = 32768

  19. net.core.somaxconn = 32768

  20. net.core.wmem_default = 8388608

  21. net.core.rmem_default = 8388608

  22. net.core.rmem_max = 16777216

  23. net.core.wmem_max = 16777216

保存後:
sysctl -p /etc/sysctl.conf // 作用:重新載入/etc/sysctl.conf文件

相關參數說明如下:

# TCP and memory optimization
# increase TCP max buffer size setable using setsockopt()
#it‘s already auto-tuned very well by Linux based on the amount of RAM.
#net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 87380 8388608
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
#表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數。
net.ipv4.tcp_max_syn_backlog = 65536
#表示開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN攻擊,默認為0,表示關閉;
net.ipv4.tcp_syncookies = 1
#表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉;
net.ipv4.tcp_tw_reuse = 1
#表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1
#修改系統默認的 TIMEOUT 時間。
net.ipv4.tcp_fin_timeout = 30
#表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時,改為20分鐘。
net.ipv4.tcp_keepalive_time = 1200
#表示用於向外連接的端口範圍。缺省情況下很小:32768到61000,改為10000到65000。(註意:這裏不要將最低值設的太低,否則可能會占用掉正常的端口!)
net.ipv4.ip_local_port_range = 10000 65000
#表示系統同時保持TIME_WAIT的最大數量,如果超過這個數字,TIME_WAIT將立刻被清除並打印警告信息。默 認為180000,改為6000。對於Apache、Nginx等服務器,上幾行的參數可以很好地減少TIME_WAIT套接字數量,但是對於 Squid,效果卻不大。此項參數可以控制TIME_WAIT的最大數量,避免Squid服務器被大量的TIME_WAIT拖死。
net.ipv4.tcp_max_tw_buckets = 6000

2.修改操作系統的ulimit 限制,vi /etc/security/ ,增加如下兩行(具體數值大點小點問題不大):

Limits.conf代碼 技術分享

  1. * soft nofile 65535

  2. * hard nofile 65535


修改tcp連接設置