91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行Linux內核參數優化

發布時間:2021-10-14 15:47:13 來源:億速云 閱讀:142 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關如何進行Linux內核參數優化,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Linux內核參數優化

我的內核心參數調整原則是,哪個遇到瓶頸調哪個,謹慎使用,不能憑想象亂調一氣。看下面例子,其中default是我們公司定做的系統默認的一些參數值。add
by yangjian2并非全部都要調整,我只挑幾個比較重要的參數說明一下,更多TCP方面的調優請參見 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: 對于系統所能打開的最大文件描述符fd,可以通過以root啟動程序,setrlimit()設置maxfd后,再通過setuid()轉為普通用戶提供服務,我用的 int set_max_fds(int maxfds); 函數是zhongying提供的。這比用ulimit來的方便的多,不曉得為什么那么多開源軟件都沒這樣用。

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

net.ipv4.tcp_syncookies = 1 : 當出現syn等候隊列出現溢出時象對方發送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協議,不允許使用TCP擴展,除非遭受攻擊,否則不推薦使用。

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

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

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

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

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

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

一般情況下這個值是在系統啟動時根據系統內存數量計算得到的,如果你的dmesg報 Out of socket memory,你可以試著修改這個參數,順便介紹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參數時做個參考:
[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內核參數優化了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武宁县| 柞水县| 乐安县| 上高县| 周宁县| 大安市| 许昌市| 麻阳| 宜宾县| 连江县| 都安| 青浦区| 潼南县| 德清县| 张家界市| 清苑县| 平原县| 双柏县| 离岛区| 丰城市| 开封市| 固始县| 德江县| 渝北区| 富顺县| 于都县| 五原县| 彭水| 象州县| 佛山市| 延津县| 天台县| 体育| 隆回县| 英吉沙县| 泾阳县| 潢川县| 禄劝| 永嘉县| 西宁市| 广州市|