cat >> /etc/sysctl.conf
# kernel optimization
net.ipv4.tcp_fin_timeout = 30
#表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態(tài)的時間。默認是60s。
net.ipv4.tcp_tw_reuse = 1
#表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1
#表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉。
net.ipv4.tcp_syncookies = 1
#開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認為0,表示關閉
net.ipv4.tcp_keepalive_time = 600
#表示當keepalive起用的時候,TCP發(fā)送keepalive消息的頻度。缺省是2小時,改為10分鐘。
net.ipv4.ip_local_port_range = 10000 60999
#表示用于向外連接的端口范圍。缺省情況下很?。?2768到61000,改為10000到60999。
net.ipv4.tcp_max_syn_backlog = 16384
#表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數
net.ipv4.tcp_max_tw_buckets = 20000
#表示系統(tǒng)同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字將立刻被清除并打印警告信息。默認為180000,改為20000 。
統(tǒng)計TIME_WAIT 連接數
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
ESTABLISHED 90
SYN_SENT 1
TIME_WAIT 1989
其中為了讓系統(tǒng)更快的釋放TIME_WAIT連接,調整的參數是
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
調整句柄數
cat /etc/security/limits.conf
root hard nofile 65535
root soft nofile 65535
root hard nproc 65535
root soft nproc 65535
pidof + 命令 獲取命令進程的pid號
ll /proc/$pid/fd 查看該進程所使用的文件秒速符列表
查看文件描述符
系統(tǒng)級
1、cat /proc/sys/fs/file-max
2、sysctl -a | grep fs.file-max
用戶級
vim /etc/security/limits.conf
修改其中的 hard nofile xxxx 和 soft nofile xxxx