核心參數的最佳化,主要是在linux系統中針對Nginx應用而進行的系統核心參數的最佳化。
下面給出的一個最佳化實例以供參考。
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_recycle = 1
.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.netp. ipv4.tcp_fin_timeout = 1
net. ipv4.tcp_keepalive_time = 30
將上面的核心參數值加入/etc/sysctl.conf檔案中,然後執行以下命令使其生效
/sbin/sysctl -p
下面對上面的參數進行介紹一下:
net .ipv4.tcp_max_tw_buckets 用來設定timewait的數量預設是180000,這裡改為6000
net.ipv4.ip_local_port_range 用來設定允許系統開啟的連接埠範圍1024
net.ipv4.回收。
net.ipv4.tcp_tw_reuse 用來設定開啟重用,允許將time-wait sockets重新用於新的tcp連線
net.ipv4.tcp_syncookies 用來開啟syn cookies,當出現syn等待佇列一處時,啟用cookiesncookies 用來開啟syn cookies,當出現syn等待佇列一處時,啟用cookiessnc net.core.somaxconn 預設是128,參數用於調節系統同時發起的tcp連線數,在高並發的請求中,預設的值可能會導致連線逾時或重傳,因此,需要結合並發請求數來調節此值。
net.core.netdev_max_backlog 表示當每個網路介面接受封包的速率比核心處理這些封包的速率快時,允許傳送到佇列的封包的最大數目。
net.ipv4.tcp_max_orphans 用於設定係統中最多有多少個tcp套接字不會被關聯到任何一個使用者檔案句柄上。如果超過這個數字,孤立連接將立即被重設並列印警告訊息。這個限制值是為了防止簡單的DOS攻擊。不能過度依賴這個限制甚至人為減小這個值,更多的情況下應該會增加這個值。
net.ipv4.tcp_max_syn_backlog 用於記錄那些尚未收到客戶端確認訊息的連線請求的最大值。對於有128MB記憶體的系統而言,次參數預設值是1024,對小記憶體的系統則是128
net.ipv4.tcp_synack_retries 參數的值決定了核心放棄連線之前發送SYN+ACK包的數量
net.ipv4 .tcp_syn_retries 表示在核心放棄履歷連線之前發送SYN套件的數量
net.ipv4.tcp_fin_timeout 決定了套接字保持在FIN-WAIT-2 狀態的時間。預設值是60秒。正確設定這個值非常重要,有時即使一個負載很小的web伺服器,也會出現大量的死套接字而產生記憶體溢出的風險。
net.ipv4.tcp_keepalive_time 表示當keepalive啟動的時候,tcp發送keepalive訊息的頻度。預設值是2(單位是小時)。
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。