概述
所謂Linux伺服器內核參數優化(適合Apache、Nginx、Squid等多種web應用,特殊的業務有可能需要做略微調整),主要是指在Linux系統中針對業務服務應用而進行的系統內核參數調整,優化並無一定的標準。
下面分兩個部分來介紹內核優化這一塊,第一部分主要講內核配置文件,大家根據需要做取捨就行,第二部分是我經常會在壓測高並發時做的一些內核優化,僅供參考。

一、內核配置文件
1、tcp套接字方面
#保持在FIN-WAIT-2狀態的時間,使系統可以處理更多連接。此參數值為整數,單位為秒。
net.ipv4.tcp_fin_timeout = 2
#開啟重用,允許將TIME_WAIT socket用於新的TCP連接。默認為0,表示關閉。
net.ipv4.tcp_tw_reuse = 1
#開啟TCP連接中TIME_WAIT socket的快速回收。默認值為0,表示關閉。
net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syn_retries=1
#開啟SYN cookie,出現SYN等待隊列溢出時啟用cookie處理,防範少量的SYN攻擊。默認為0,表示關閉。
net.ipv4.tcp_syncookies = 1
#表示SYN隊列的長度,預設為1024,這裡設置隊列長度為262 144,以容納更多等待連接。
net.ipv4.tcp_max_syn_backlog = 262144
#系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數值將立刻被清楚並輸出警告信息。默認值為180000。對於squid來說效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid伺服器被拖死。
net.ipv4.tcp_max_tw_buckets =5000
#表示系統中最多有多少TCP套接字不被關聯到任何一個用戶文件句柄上。如果超過這裡設置的數字,連接就會複位並輸出警告信息。這個限制僅僅是為了防止簡單的DoS攻擊。此值不能太小。
net.ipv4.tcp_max_orphans = 16384
# 增加TCP最大緩衝區大小
net.ipv4.tcp_rmem=4096 87380 4194304 net.ipv4.tcp_wmem=4096 16384 4194304
2、keepalived方面
#keepalived啟用時TCP發送keepalived消息的拼度。默認2小時。
net.ipv4.tcp_keepalive_time = 600
#TCP發送keepalive探測以確定該連接已經斷開的次數。根據情形也可以適當地縮短此值。
net.ipv4.tcp_keepalive_probes = 5
#探測消息發送的頻率,乘以tcp_keepalive_probes就得到對於從開始探測以來沒有響應的連接殺除的時間。默認值為75秒,也就是沒有活動的連接將在大約11分鐘以後將被丟棄。對於普通應用來說,這個值有一些偏大,可以根據需要改小.特別是web類伺服器需要改小該值。
net.ipv4.tcp_keepalive_intvl = 15
3、埠方面
#指定外部連接的埠範圍。默認值為32768 61000。
net.ipv4.ip_local_port_range = 1024 65000
#定義了系統中每一個埠最大的監聽隊列的長度, 對於一個經常處理新連接的高負載 web服務環境來說,默認值為128,偏小。
net.core.somaxconn = 16384
#表示當在每個網路介面接收數據包的速率比內核處理這些包的速率快時,允許發送到隊列的數據包的最大數量。
net.core.netdev_max_backlog = 16384
#避免放大攻擊
net.ipv4.icmp_echo_ignore_broadcasts=1
PS:修改生效
vi /etc/sysctl.conf
增加合適參數後生效配置
sysctl -p

二、壓測調優參數參考
# 允許等待中的監聽, 設置系統最大socket連接數
echo 50000 >/proc/sys/net/core/somaxconn
#tcp連接快速回收:0-不加快tcp回收 1-加快tcp回收
echo 1 >/proc/sys/net/ipv4/tcp_tw_recycle
# tcp連接重用 :0-不啟用空tcp回收 1-空tcp回收
echo 1 >/proc/sys/net/ipv4/tcp_tw_reuse
#不抵禦洪水攻擊:0-去除洪水攻擊抵禦 1-啟用洪水攻擊抵禦
echo 0 >/proc/sys/net/ipv4/tcp_syncookies
#設置系統最大文件訪問數量
echo "ulimit -n 50000" >> /etc/profile source /etc/profile
#設置用戶最大進程數
vi /etc/security/limits.conf
oracle soft nproc 16384 oracle hard nproc 16384

關於linux內核優化這一塊的內容就講到這了,大家根據需要去做取捨就行,特別是系統有高並發業務時,可以考慮適當去做優化。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280185.html
微信掃一掃
支付寶掃一掃