真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

如何進行Linux內核參數(shù)優(yōu)化

這期內容當中小編將會給大家?guī)碛嘘P如何進行Linux內核參數(shù)優(yōu)化,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

莫力達網站建設公司創(chuàng)新互聯(lián)公司,莫力達網站設計制作,有大型網站制作公司豐富經驗。已為莫力達上千多家提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站制作要多少錢,請找那個售后服務好的莫力達做網站的公司定做!

Linux內核參數(shù)優(yōu)化

我的內核心參數(shù)調整原則是,哪個遇到瓶頸調哪個,謹慎使用,不能憑想象亂調一氣。看下面例子,其中default是我們公司定做的系統(tǒng)默認的一些參數(shù)值。add
by yangjian2并非全部都要調整,我只挑幾個比較重要的參數(shù)說明一下,更多TCP方面的調優(yōu)請參見 man 7 tcp 。
#++++++++++++++++++default++++++++++++++++++++++++++++++
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096        87380   4194304
net.ipv4.tcp_wmem = 4096        16384   4194304
#++++++++++++++++++add by yangjian2++++++++++++++++++++++
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog =  32768
net.core.somaxconn = 32768

net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++

maxfd: 對于系統(tǒng)所能打開的最大文件描述符fd,可以通過以root啟動程序,setrlimit()設置maxfd后,再通過setuid()轉為普通用戶提供服務,我用的 int set_max_fds(int maxfds); 函數(shù)是zhongying提供的。這比用ulimit來的方便的多,不曉得為什么那么多開源軟件都沒這樣用。

net.ipv4.tcp_max_syn_backlog = 65536 : 這個參數(shù)可以肯定是必須要修改的,默認值1024,我google了一下,幾乎是人云亦云,沒有說的明白的。 要講明白得從man listen說起,int listen(int sockfd, int backlog);  早期的網絡編程都中描述,int backlog 代表未完成隊列SYN_RECV狀態(tài)+已完成隊列ESTABLISHED的和。但是這個意義在Linux 2.2以后的實現(xiàn)中已經被改變了,int
backlog只代表已完成隊列ESTABLISHED的長度,在AF_INET協(xié)議族中(我們廣泛使用的就是這個),當int backlog大于SOMAXCONN  (128 in Linux 2.0
& 2.2)的時候,會被調整為常量SOMAXCONN大小。這個常量可以通過net.core.somaxconn來修改。而未完成隊列大小可以通過net.ipv4.tcp_max_syn_backlog來調整,一般遭受syn flood攻擊的網站,都存在大量SYN_RECV狀態(tài),所以調大tcp_max_syn_backlog值能增加抵抗syn攻擊的能力。

net.ipv4.tcp_syncookies = 1 : 當出現(xiàn)syn等候隊列出現(xiàn)溢出時象對方發(fā)送syncookies。目的是為了防止syn flood攻擊 , 默認值是 0。 不過man listen說當啟用syncookies時候,tcp_max_syn_backlog的sysctl調整將失效,和這個描述不是很符合。參見下面兩個描述分別是man listen和man 7 tcp:
When syncookies are enabled there is no logical maximum length and this tcp_max_syn_backlog sysctl  setting  is  ignored.
Send out  syncookies  when the syn backlog queue of a socket overflows.
但我可以肯定的說這個選項對你的性能不會有提高,而且它嚴重的違背TCP協(xié)議,不允許使用TCP擴展,除非遭受攻擊,否則不推薦使用。

net.ipv4.tcp_synack_retries = 2 : 對于遠端的連接請求SYN,內核會發(fā)送SYN + ACK數(shù)據報,以確認收到上一個 SYN連接請求包。這是所謂的三次握手( threeway handshake)機制的第二個步驟。這里決定內核在放棄連接之前所送出的 SYN+ACK 數(shù)目。如果你的網站SYN_RECV狀態(tài)確實挺多,為了避免syn攻擊,那么可以調節(jié)重發(fā)的次數(shù)。

net.ipv4.tcp_syn_retries = 2 : 對于一個新建連接,內核要發(fā)送多少個 SYN 連接請求才決定放棄。不應該大于255,默認值是5,對應于180秒左右。這個對防止syn攻擊其實是沒有用處的,也沒必要調節(jié)。

net.ipv4.tcp_max_orphans = 3276800 : 這個最好不要修改,因為每增加1,將消耗~64k內存。即使報錯 TCP: too many of orphaned sockets 也有可能是由于你的net.ipv4.tcp_mem過小,導致的Out of socket memory,繼而引發(fā)的。

net.ipv4.tcp_wmem = 4096 16384 4194304 :  為自動調優(yōu)定義每個socket使用的內存。第一個值是為socket的發(fā)送緩沖區(qū)分配的最少字節(jié)數(shù)。第二個值是默認值(該值會被 wmem_default覆蓋),緩沖區(qū)在系統(tǒng)負載不重的情況下可以增長到這個值。第三個值是發(fā)送緩沖區(qū)空間的最大字節(jié)數(shù)(該值會被wmem_max覆蓋)。

net.ipv4.tcp_rmem = 4096 87380 4194304 : 接收緩沖區(qū),原理同上。

net.ipv4.tcp_mem = 94500000 915000000 927000000 :
low:當TCP使用了低于該值的內存頁面數(shù)時,TCP不會考慮釋放內存。
pressure:當TCP使用了超過該值的內存頁面數(shù)量時,TCP試圖穩(wěn)定其內存使用,進入pressure模式,當內存消耗低于low值時則退出pressure狀態(tài)。
high:允許所有tcp sockets用于排隊緩沖數(shù)據報的內存頁數(shù)。

一般情況下這個值是在系統(tǒng)啟動時根據系統(tǒng)內存數(shù)量計算得到的,如果你的dmesg報 Out of socket memory,你可以試著修改這個參數(shù),順便介紹3個修改方法:
1, echo “94500000 915000000 927000000″ > /proc/sys/net/ipv4/tcp_wmem
2, sysctl -w "net.ipv4.tcp_mem = 94500000 915000000 927000000"
3, net.ipv4.tcp_mem = 94500000 915000000 927000000 (vi /etc/sysctl.conf 然后 sysctl -p生效)

下面命令也許能提供些信息,在你修改tcp參數(shù)時做個參考:
[sports@xk-6-244-a8 nbahttpd_beta4.0]$ cat  /proc/net/sockstat
sockets: used 1195
TCP: inuse 1177 orphan 30 tw 199 alloc 1181 mem 216
UDP: inuse 0 mem 0
RAW: inuse 0
FRAG: inuse 0 memory 0

其他我就不多說了,知道這些基本就能解決絕大部分問題了。

上述就是小編為大家分享的如何進行Linux內核參數(shù)優(yōu)化了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章題目:如何進行Linux內核參數(shù)優(yōu)化
標題鏈接:http://weahome.cn/article/pssjco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部