歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux 內核優化若干參數說明

Linux 針對服務,為了提升性能會進行若干參數的調整,以下針對配合nginx 若干優化的說明
1.vim /etc/sysctl.conf 來改內核參數。
fs.file-max = 999999
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range = 1024  61000
net.ipv4.tcp_rmen = 4096 32768 262142
net.ipv4.tcp_wmen = 4096 32768 262142
net.core.netdev_max_backlog = 8096
net.core.rmen_default = 262144
net.core.wmen_default = 262144
net.core.rmen_max = 262144
net.core.wmen_max = 262144
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn.backlog=1024
注:
1>file-max:這個參數表示進程(比如一個worker 進程)可以同時打開的最大句柄數,這個參數直接限制最大並發連接數,需要根據實際的情況配置
2>tcp_tw_reuse:這個參數設置為1,表示允許將time-wait 狀態的socket 重新用於新的tcp連接,這
對於服務器來說很有意義,因為服務上總會有大量time-wait 狀態的連接
3>tcp_keepalive_time :這個參數表示當keepalive 啟用時,tcp 發送keepalive 消息的頻度,默認是2小時,如果把他設置的小一些,可以更快的清理無效的連接。
4>tcp_fin_timeout: 這個參數表示當服務器主動關閉連接時,socket 保持在FIN-WAIT-2狀態的最大時間。
5>tcp_max_tw_buckets:這個參數表示操作系統允許time_wait 套接字數量的最大值,如果超過這個值,time_wait
套接字將被立刻清楚並被打印上警告信息,該參數默認為180 000,過多的time_wait 套接字會是服務器變慢
6>tcp_max_syn_backlog:這個參數表示tcp三次握手建立階段接受syn請求隊列的最大長度,默認為1024,將其設置的大一些
可以使出現nginx 繁忙來不及accept 新連接的情況時,linux 不至於丟失客戶端發起的連接請求
7>ip_local_port_range:這個參數定義了再udp和tcp 連接中本地(不包括連接遠端)端口的取值范圍。
8>net.ipv4.tcp_rmen:這個參數定義了tcp 接受緩存(用於tcp接受滑動窗口)的最小值,默認值和最大值
9>net.ipv4.tcp_wmen:這個參數定義了tcp 發送緩存(用於tcp發送滑動窗口)的最小值,默認值和做大值
10>netdev_max_backlog:當網卡接受數據包的速度大於內核處理的速度時,會有一個隊列保存這些數據包。該參數表示該隊列的最大值。
11>rmen_default:這個參數表示內核套字接受緩存區默認的大小。
12>wmen_default:這個參數表示內核套字發送緩存區默認的大小。
13>rmen_max:這個參數表示內核套字接受緩存區最大大小.
14>rmen_max:這個參數表示內核套字發送緩存區最大大小.
注意:滑動窗口的大小與套接字緩存區會在一定程度上影響並發連接的數目。每個tcp連接都會為維護tcp滑動窗口而消耗內存,這個窗口會根據
服務器的處理速度收縮或擴張。連接數
  參數wmen_max 的設置,需要平衡物理內存的總大小、nginx 並發處理的最大連接數量(。有nginx.conf中的worker_processes 和worker_connection參數決定)而確定。滑動窗口過下會影響大數據量的傳輸速度。rmen_default、wmen_default、rmen_max、wmen_max 這
  4個參賽的設置要根據應用的業務需求去確定
15>tcp_syncookies:該參數與性能無關,用於解決tcp的syn攻擊。

Linux Kernel 的詳細介紹:請點這裡
Linux Kernel 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved