linux內核優化
調整linux的最大文件打開數和用戶進程數
打開
/etc/security/limits.conf
,在最後一行添加如下命令:
* soft nofile 65535
* hard nofile 65535
* soft nproc 10240
* hard nproc 10240
在系統的/etc/rc.
local
文件添加如下內容
ulimit
-SHn 65535
#
#臨時打開最大文件數
#Linux 6.4之後,如果只修改了該文件中的nproc,那麽其他非root用戶對應的max_user_processes並不會改變,仍然是1024,這個是因為受到了下面這個文件的影響,改成和nproc 10240一樣
vim /etc/security/limits.d/90-nproc.conf
#開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN Flood(洪水攻擊)攻擊
net.ipv4.tcp_syncookies = 1
#表示SYN 隊列的長度,默認1024,建議加大隊列的長度為8192或更多,就能容納更多等待連接的網絡連接數量,該參數為服務器端用於記錄那些尚未接受到客戶端確認信息的連接請求最大值
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_synack_retries=2 #SYN-ACK握手狀態重試次數,默認5
#
設置允許系統打開的系統範圍,即用於向外連接的端口範圍
net.ipv4.ip_local_port_range = 4000 65000
# TCP
失敗重傳次數,默認是15,減少次數可釋放內核資源
net.ipv4.tcp_tw_recycle = 1
#
允許將TIME-WAIT sockets 重新用於新的TCP連接
提示:reuse和recycle這兩個參數是為了防止生產環境下的web、squid等業務服務
器time_wait網絡狀態數量過多設置的
net.ipv4.tcp_tw_reuse = 1
#用於設定系統中最多有多少個TCP套接字不被關聯到任何一個用戶文件句柄上,如果超過這個數值,孤立連接將立即被復位並打印出警告信息,這個限制只是為了防止簡單的DOS攻擊,不能過分依靠這個限制甚至人為減少這個值,更多的情況是增加這個值
net.ipv4.tcp_max_orphans = 16384
#默認值是128,這個參數用於調節系統同時發起的TCP連接數,在高並發的請求中,默認的值可能會導致鏈接超時或重傳,因此需要結合並發請求數來調節此值
net.core.somaxconn = 16384
# 表示系統同時保持 TIME_WAIT套接字的最大數量,如果超出這個數值,TIME_WAIT套接字將立刻清楚並打印警告信息,默認為180000,對於Apache\Nginx等服務器可以將其調低一點,如改為5000-30000,此項參數可以控制TIME_WAIT套接字的最大數量,編碼Squit服務器被大量的TIME_WAIT套接字拖死#timewait的數量,默認是180000
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_fin_timeout = 2 #修改FIN-WAIT-2保存狀態時間,默認是60秒
linux內核優化