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