优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》...
優化Linux內核參數/etc/sysctl.conf? sysctl? 《高性能Linux服務器構建實戰:運維監控、性能調優與集群應用》
http://book.51cto.com/art/201202/314880.htm
2.6 Varnish優化
Varnish是否能穩定、快速地運行,與Linux本身的優化及Varnish自身參數的設置有很大關系。在安裝配置完Varnish后,還必須從操作系統和Varnish配置參數兩個方面對Varnish服務器進行性能優化,從而最大限度地發揮Varnish的性能優勢。
2.6.1 優化Linux內核參數
內核參數是用戶和系統內核之間交互的一個接口,通過這個接口,用戶可以在系統運行的同時動態更新內核配置,而這些內核參數是通過Linux Proc文件系統存在的。因此,可以通過調整Proc文件系統達到優化Linux性能的目的。
以下參數是官方給出的一個配置:
net.ipv4.ip_local_port_range = 1024 65536 ?
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216 ?
net.ipv4.tcp_wmem=4096 65536 16777216 ?
net.ipv4.tcp_fin_timeout = 30
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_no_metrics_save=1
net.core.somaxconn = 262144
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
上面每個參數的含義如下:
net.ipv4.ip_local_port_range:用來指定外部連接的端口范圍,默認是32 768到61 000,這里設置為1024到65 536。
net.core.rmem_max:指定接收套接字緩沖區大小的最大值,單位是字節。
net.core.wmem_max:指定發送套接字緩沖區大小的最大值,單位是字節。
net.ipv4.tcp_rmem:此參數與net.ipv4.tcp_wmem都是用來優化TCP接收/發送緩沖區的,包含3個整數值,分別是min、default、max。
對于tcp_rmem,min表示為TCP socket預留的用于接收緩存的最小內存數量,default表示為TCP socket預留的用于接收緩存的默認的內存值,max表示用于TCP socket接收緩存的內存最大值。
對于tcp_wmem,min表示為TCP socket預留的用于發送緩存的內存最小值,default表示為TCP socket預留的用于發送緩存的默認的內存值,max表示用于TCP socket發送緩存的內存最大值。
net.ipv4.tcp_fin_timeout:此參數用于減少處于FIN-WAIT-2連接狀態的時間,使系統可以處理更多的連接。此參數值為整數,單位為秒。
例如,在一個tcp會話過程中,在會話結束時,A首先向B發送一個fin包,在獲得B的ack確認包后,A就進入FIN-WAIT-2狀態等待B的fin包,然后給B發ack確認包。net.ipv4.tcp_fin_timeout參數用來設置A進入FIN-WAIT-2狀態等待對方fin包的超時時間。如果時間到了仍未收到對方的fin包就主動釋放該會話。
net.core.netdev_max_backlog:該參數表示當在每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許發送到隊列的數據包的最大數量。
net.ipv4.tcp_syncookie:表示是否打開SYN Cookie。tcp_syncookies是一個開關,該參數的功能有助于保護服務器免受SyncFlood攻擊。默認值為0,這里設置為1。
net.ipv4.tcp_max_orphans:表示系統中最多有多少TCP套接字不被關聯到任何一個用戶文件句柄上。如果超過這里設置的數字,連接就會復位并輸出警告信息。這個限制僅僅是為了防止簡單的DoS攻擊。此值不能太小。這里設置為262 144。
net.ipv4.tcp_max_syn_backlog:表示SYN隊列的長度,預設為1024,這里設置隊列長度為262 144,以容納更多的等待連接。
net.ipv4.tcp_synack_retries:這個參數用于設置內核放棄連接之前發送SYN+ACK包的數量。
net.ipv4.tcp_syn_retries:此參數表示在內核放棄建立連接之前發送SYN包的數量。
將以上內容添加到/etc/sysctl.conf文件中,然后執行如下命令,使設置生效。
[root@varnish-server ~]#sysctl? -p
轉載于:https://www.cnblogs.com/MYSQLZOUQI/p/5175432.html
總結
以上是生活随笔為你收集整理的优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从源代码角度分析ViewStub 疑问与
- 下一篇: 【C++】C++自学旅程(5):指针和引