溫馨提示×

溫馨提示×

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

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

CentOS5.x系統(tǒng)內(nèi)核優(yōu)化的示例分析

發(fā)布時間:2021-07-19 13:49:16 來源:億速云 閱讀:114 作者:小新 欄目:系統(tǒng)運維

這篇文章主要為大家展示了“CentOS5.x系統(tǒng)內(nèi)核優(yōu)化的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“CentOS5.x系統(tǒng)內(nèi)核優(yōu)化的示例分析”這篇文章吧。

主要是針對/etc/sysctl.conf里的各項進行詳細解析,所有內(nèi)容經(jīng)網(wǎng)絡搜集并整理,方便大家學習了解。

系統(tǒng)優(yōu)化項:

kernel.sysrq = 0

#使用sysrq組合鍵是了解系統(tǒng)目前運行情況,為安全起見設為0關(guān)閉 

 kernel.core_uses_pid = 1

#控制core文件的文件名是否添加pid作為擴展 

kernel.msgmnb = 65536

#每個消息隊列的大小限制,以字節(jié)為單位

kernel.msgmni = 16 

#整個系統(tǒng)最大消息隊列數(shù)量限制,此值可以根據(jù)需要增大.

kernel.msgmax = 65536

#每個消息的最大size

kernel.shmmax = 68719476736

#可用共享內(nèi)存段的大小(單位:字節(jié))限制

kernel.shmall = 4294967296

#所有內(nèi)存大?。▎挝唬喉?1頁 = 4Kb) 

kernel.shmmni = 4096

#控制共享內(nèi)存段總數(shù),目前的參數(shù)值是4096

kernel.sem = 250 32000 100 128

或kernel.sem =5010 641280 5010 128

#SEMMSL(每個用戶擁有信號量最大數(shù)量),SEMMNS(系統(tǒng)信號量最大數(shù)量),SEMOPM(每次semop系統(tǒng)調(diào)用操作數(shù)),SEMMNI(系統(tǒng)信號量集最大數(shù)量)

fs.aio-max-nr = 65536或取(1048576)(3145728)值

# 在系統(tǒng)級支持異步I/O,當系統(tǒng)進行大量的連續(xù)IO會使用較大的值

fs.aio-max-size = 131072  

#異步IO的最大大小

fs.file-max = 65536        

#表示文件句柄的最大數(shù)量

net.core.wmem_default = 8388608

#為TCP socket預留用于發(fā)送緩沖的內(nèi)存默認值(單位:字節(jié))

net.core.wmem_max = 16777216

#為TCP socket預留用于發(fā)送緩沖的內(nèi)存最大值(單位:字節(jié))

net.core.rmem_default = 8388608

#為TCP socket預留用于接收緩沖的內(nèi)存默認值(單位:字節(jié)) 

net.core.rmem_max = 16777216

#為TCP socket預留用于接收緩沖的內(nèi)存最大值(單位:字節(jié))

net.core.somaxconn = 262144

#listen(函數(shù))的默認參數(shù),掛起請求的最大數(shù)量限制 

網(wǎng)絡優(yōu)化項:

net.ipv4.ip_forward = 0

#禁用包過濾、轉(zhuǎn)發(fā)功能 

net.ipv4.tcp_syncookies = 1

#開啟SYN COOKIES功能

net.ipv4.conf.default.rp_filter = 1

#啟用源路由核查功能 

net.ipv4.conf.default.accept_source_route = 0

#禁用所有IP源路由 

net.ipv4.route.gc_timeout = 100

#路由緩存刷新頻率, 當一個路由失敗后多長時間跳到另一個默認是300

net.ipv4.ip_local_port_range = 1024 65000

#對外連接端口范圍,缺省情況下很?。?2768到61000,改為1024到65000。

net.ipv4.tcp_max_tw_buckets = 6000

#表示系統(tǒng)同時保持TIME_WAIT套接字的最大數(shù)量,如果超過這個數(shù)字,TIME_WAIT套接字將立刻被清除并打印警告信息,默認為180000

net.ipv4.tcp_sack = 1

#在高延遲的連接中,SACK 對于有效利用所有可用帶寬尤其重要。高延遲會導致在任何給定時刻都有大量正在傳送的包在等待應答。在 Linux 中,除非得到應答或不再需要,這些包將一直存放在重傳隊列中。這些包按照序列編號排隊,但不存在任何形式的索引。當需要處理一個收到的 SACK 選項時,TCP 協(xié)議棧必須在重傳隊列中找到應用了 SACK 的包。重傳隊列越長,找到所需的數(shù)據(jù)就越困難。一般可關(guān)閉這個功能。選擇性應答在高帶寬延遲的網(wǎng)絡連接上對性能的影響很大,但也可將其禁用,這不會犧牲互操作性。將其值設置為 0 即可禁用 TCP 協(xié)議棧中的 SACK 功能。

net.core.netdev_max_backlog = 262144

#每個網(wǎng)絡接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時,允許送到隊列的數(shù)據(jù)包的最大數(shù)目 

net.ipv4.tcp_window_scaling = 1

#TCP窗口擴大因子支持. 如果TCP窗口最大超過65535(64K), 設置該數(shù)值為1 。Tcp窗口擴大因子是一個新選項,一些新的實現(xiàn)才會包含該選項,為了是新舊協(xié)議兼容,做了如下約定:1、只有主動連接方的第一個syn可以發(fā)送窗口擴大因子;2、被動連接方接收到帶有窗口擴大因子的選項后,如果支持,則可以發(fā)送自己的窗口擴大因子,否則忽略該選項;3、如果雙方支持該選項,那么后續(xù)的數(shù)據(jù)傳輸則使用該窗口擴大因子。如果對方不支持wscale,那么它不應該響應 wscale 0,而且在收到46的窗口時不應該發(fā)送1460的數(shù)據(jù);如果對方支持wscale,那么它應該大量發(fā)送數(shù)據(jù)來增加吞吐量,不至于通過關(guān)閉wscale來解決問題,如果是使用普遍的協(xié)議實現(xiàn),那么就需要關(guān)閉wscale來提高性能并以防萬一。

net.ipv4.tcp_rmem = 4096 87380 4194304

#TCP讀buffer 

net.ipv4.tcp_wmem = 4096 16384 4194304

#TCP寫buffer

net.ipv4.tcp_max_orphans = 3276800

#系統(tǒng)中最多有多少個TCP套接字不被關(guān)聯(lián)到任何一個用戶文件句柄上。如果超過這個數(shù)字,孤兒連接將即刻被復位并打印出警告信息。這個限制僅僅是為了防止簡單的DoS攻擊,不能過分依靠它或者人為地減小這個值,更應該增加這個值(如果增加了內(nèi)存之后)。

net.ipv4.tcp_max_syn_backlog = 262144

#表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網(wǎng)絡連接數(shù)

net.ipv4.tcp_timestamps = 0

#時間戳可以避免序列號的卷繞。一個1Gbps 的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓內(nèi)核接受這種“異?!钡臄?shù)據(jù)包。這里需要將其關(guān)掉。

net.ipv4.tcp_synack_retries = 1

#為了打開對端的連接,內(nèi)核需要發(fā)送一個SYN 并附帶一個回應前面一個SYN 的ACK。也就是所謂三次握手中的第二次握手。這個設置決定了內(nèi)核放棄連接之前發(fā)送SYN+ACK 包的數(shù)量。

net.ipv4.tcp_syn_retries = 1

#對于一個新建連接,內(nèi)核要發(fā)送多少個 SYN 連接請求才決定放棄。不應該大于255,默認值是5

net.ipv4.tcp_tw_recycle = 1

#啟用timewait快速回收

net.ipv4.tcp_tw_reuse = 1

#開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接。

net.ipv4.tcp_mem = 94500000 915000000 927000000

#1st低于此值,TCP沒有內(nèi)存壓力,2nd進入內(nèi)存壓力階段,3rdTCP拒絕分配socket(單位:內(nèi)存頁)

net.ipv4.tcp_fin_timeout = 1

#表示如果套接字由本端要求關(guān)閉,這個參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時間為15秒

net.ipv4.tcp_keepalive_time = 60

#表示當keepalive起用的時候,TCP發(fā)送keepalive消息的頻度。缺省是2小時,改為1分鐘。

net.ipv4.tcp_keepalive_probes= 1

net.ipv4.tcp_keepalive_intvl= 2

#意思是如果某個TCP連接在idle 2分鐘后,內(nèi)核才發(fā)起probe.如果probe 1次(每次2秒)不成功,內(nèi)核才徹底放棄,認為該連接已失效. 

最后使配置立即生效,可使用如下命令:

#/sbin/sysctl -p

我們在性能優(yōu)化時,首先要設定性能優(yōu)化需要達到的目標,然后尋找瓶頸,調(diào)整參數(shù),達到優(yōu)化目的。尋找性能瓶頸是比較辛苦的,要從大范圍,通過很多用例和測試,不斷的縮小范圍,最終確定瓶頸點, 有很多的參數(shù)要邊測試邊調(diào)整,這就需要我們更多的耐心和堅持。

實例:

temp=`cat /etc/sysctl.conf|grep -c net.ipv4.tcp_max_syn_backlog`

if [ $temp -eq 0 ]

then

echo "# Add" >> /etc/sysctl.conf

echo "net.ipv4.tcp_max_syn_backlog = 65536" >> /etc/sysctl.conf

echo "net.core.netdev_max_backlog =  32768" >> /etc/sysctl.conf

echo "net.core.somaxconn = 32768" >> /etc/sysctl.conf

echo "net.core.wmem_default = 8388608" >> /etc/sysctl.conf

echo "net.core.rmem_default = 8388608" >> /etc/sysctl.conf

echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf

echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf

echo "net.ipv4.tcp_timestamps = 0" >> /etc/sysctl.conf

echo "net.ipv4.tcp_synack_retries = 2" >> /etc/sysctl.conf

echo "net.ipv4.tcp_syn_retries = 2" >> /etc/sysctl.conf

echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf

#net.ipv4.tcp_tw_len = 1

echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf

echo "net.ipv4.tcp_mem = 94500000 915000000 927000000" >> /etc/sysctl.conf

echo "net.ipv4.tcp_max_orphans = 3276800" >> /etc/sysctl.conf

#net.ipv4.tcp_fin_timeout = 30

#net.ipv4.tcp_keepalive_time = 120

echo "net.ipv4.ip_local_port_range = 1024  65535" >> /etc/sysctl.conf

以上是“CentOS5.x系統(tǒng)內(nèi)核優(yōu)化的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

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

AI