如何對Linux內核參數進行優化?

打開配置文件

vi /etc/sysctl.conf

輸入配置,以下是內核優化的參數

# TCP三次握手創建階段接收SYN請求隊列的最大長度,默認爲1024(將其設置得大一些能夠使出現Nginx繁忙來不及accept新鏈接的狀況時,Linux不至於丟失客戶端發起的鏈接請求)        
net.ipv4.tcp_max_syn_backlog = 65536 
# 數據包隊列的最大值(當網卡接收數據包的速度大於內核處理的速度時,會有一個隊列保存這些數據包)
net.core.netdev_max_backlog = 32768 
# 每個端口最大的監聽隊列的長度,默認值爲128
net.core.somaxconn = 32768 

# 內核套接字發送緩衝區默認的大小
net.core.wmem_default = 262144 
# 內核套接字發送緩衝區最大大小
net.core.wmem_max = 2097152
# 內核套接字接收緩衝區默認的大小
net.core.rmem_default = 262144 
# 內核套接字接收緩衝區最大大小
net.core.rmem_max = 2097152

# TCP接收緩存(用於TCP接收滑動窗口)的最小值、默認值、最大值
net.ipv4.tcp_rmem = 4096 32768 262142 
# TCP發送緩存(用於TCP發送滑動窗口)的最小值、默認值、最大值
net.ipv4.tcp_wmem = 4096 32768 262142  
# TCP的內存大小,其單位是頁,1頁等於4096字節,系統默認值:cat /proc/sys/net/ipv4/tcp_mem
net.ipv4.tcp_mem=94500000 915000000 927000000
# 系統所能處理不屬於任何進程的TCP sockets最大數量
net.ipv4.tcp_max_orphans=3276800

# 當服務器主動關閉鏈接時,socket保持在FIN-WAIT-2狀態的最大時間
net.ipv4.tcp_fin_timeout = 30 
# 當keepalive啓用時,TCP發送keepalive消息的頻度(若將其設置得小一些,能夠更快清理無效的鏈接)
net.ipv4.tcp_keepalive_time = 120 
# 在UDP和TCP鏈接中本地端口的取值範圍
net.ipv4.ip_local_port_range = 1024 61000 


# 限制進程最大併發鏈接數,根據實際狀況配置
fs.file-max = 65536
# 操做系統容許TIME-WAIT套接字數量的最大值,默認爲180000(過多的TIME-WAIT套接字會使Web服務器變慢)
net.ipv4.tcp_max_tw_buckets = 5000
# 用於解決TCP的SYN攻擊
net.ipv4.tcp_syncookies = 1

#開啓TCP時間戳,以一種比重發超時更精確的方法(請參閱 RFC 1323)來啓用對 RTT 的計算;爲了實現更好的性能應該啓用這個選項
net.ipv4.tcp_timestamps = 1;
#決定內核在放棄鏈接以前所送出的 SYN+ACK 數目
net.ipv4.tcp_synack_retries = 1;
#在內核放棄創建鏈接以前發送SYN包的數量。
net.ipv4.tcp_syn_retries = 1;

# 容許將TIME-WAIT狀態的socket從新用於新的TCP鏈接
net.ipv4.tcp_tw_recycle = 1
# 容許將TIME-WAIT狀態的socket從新用於新的TCP鏈接
net.ipv4.tcp_tw_reuse = 1

更新配置命令

sysctl -p
相關文章
相關標籤/搜索