主要是針對/etc/sysctl.conf裡的各項進行詳細解析,所有內容經網路蒐集並整理,方便大家學習了解。
系統優化項:
kernel.sysrq = 0
#使用sysrq組合鍵是了解系統目前運**況,為安全起見設為0關閉
kernel.core_uses_pid = 1
#控制core檔案的檔名是否新增pid作為擴充套件
kernel.msgmnb = 65536
#每個訊息佇列的大小限制,以位元組為單位
kernel.msgmni = 16
#整個系統最大訊息佇列數量限制,此值可以根據需要增大.
kernel.msgmax = 65536
#每個訊息的最大size
kernel.shmmax = 68719476736
#可用共享記憶體段的大小(單位:位元組)限制
kernel.shmall = 4294967296
#所有記憶體大小(單位:頁,1頁 = 4kb)
kernel.shmmni = 4096
#控制共享記憶體段總數,目前的引數值是4096
kernel.sem = 250 32000 100 128
或kernel.sem =5010 641280 5010 128
#semmsl(每個使用者擁有訊號量最大數量),semmns(系統訊號量最大數量),semopm(每次semop系統呼叫運算元),semmni(系統訊號量集最大數量)
fs.aio-max-nr = 65536或取(1048576)(3145728)值
# 在系統級支援非同步i/o,當系統進行大量的連續io會使用較大的值
fs.aio-max-size = 131072
#非同步io的最大大小
fs.file-max = 65536
#表示檔案控制代碼的最大數量
net.core.wmem_default = 8388608
#為tcp socket預留用於傳送緩衝的記憶體預設值(單位:位元組)
net.core.wmem_max = 16777216
#為tcp socket預留用於傳送緩衝的記憶體最大值(單位:位元組)
net.core.rmem_default = 8388608
#為tcp socket預留用於接收緩衝的記憶體預設值(單位:位元組)
net.core.rmem_max = 16777216
#為tcp socket預留用於接收緩衝的記憶體最大值(單位:位元組)
net.core.somaxconn = 262144
#listen(函式)的預設引數,掛起請求的最大數量限制
網路優化項:
net.ipv4.ip_forward = 0
#禁用包過濾、**功能
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
#對外連線埠範圍,預設情況下很小:32768到61000,改為1024到65000。
net.ipv4.tcp_max_tw_buckets = 6000
#表示系統同時保持time_wait套接字的最大數量,如果超過這個數字,time_wait套接字將立刻被清除並列印警告資訊,預設為180000
net.ipv4.tcp_sack = 1
#在高延遲的連線中,sack 對於有效利用所有可用頻寬尤其重要。高延遲會導致在任何給定時刻都有大量正在傳送的包在等待應答。在 linux 中,除非得到應答或不再需要,這些包將一直存放在重傳佇列中。這些包按照序列編號排隊,但不存在任何形式的索引。當需要處理乙個收到的 sack 選項時,tcp 協議棧必須在重傳佇列中找到應用了 sack 的包。重傳佇列越長,找到所需的資料就越困難。一般可關閉這個功能。選擇性應答在高頻寬延遲的網路連線上對效能的影響很大,但也可將其禁用,這不會犧牲互操作性。將其值設定為 0 即可禁用 tcp 協議棧中的 sack 功能。
net.core.netdev_max_backlog = 262144
#每個網路介面接收資料報的速率比核心處理這些包的速率快時,允許送到佇列的資料報的最大數目
net.ipv4.tcp_window_scaling = 1
#tcp視窗擴大因子支援. 如果tcp視窗最大超過65535(64k), 設定該數值為1 。tcp視窗擴大因子是乙個新選項,一些新的實現才會包含該選項,為了是新舊協議相容,做了如下約定:1、只有主動連線方的第乙個syn可以傳送視窗擴大因子;2、被動連線方接收到帶有視窗擴大因子的選項後,如果支援,則可以傳送自己的視窗擴大因子,否則忽略該選項;3、如果雙方支援該選項,那麼後續的資料傳輸則使用該視窗擴大因子。如果對方不支援wscale,那麼它不應該響應 wscale 0,而且在收到46的視窗時不應該傳送1460的資料;如果對方支援wscale,那麼它應該大量傳送資料來增加吞吐量,不至於通過關閉wscale來解決問題,如果是使用普遍的協議實現,那麼就需要關閉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
#系統中最多有多少個tcp套接字不被關聯到任何乙個使用者檔案控制代碼上。如果超過這個數字,孤兒連線將即刻被復位並列印出警告資訊。這個限制僅僅是為了防止簡單的dos***,不能過分依靠它或者人為地減小這個值,更應該增加這個值(如果增加了記憶體之後)。
net.ipv4.tcp_max_syn_backlog = 262144
#表示syn佇列的長度,預設為1024,加大佇列長度為8192,可以容納更多等待連線的網路連線數
net.ipv4.tcp_timestamps = 0
#時間戳可以避免序列號的捲繞。乙個1gbps 的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓核心接受這種「異常」的資料報。這裡需要將其關掉。
net.ipv4.tcp_synack_retries = 1
#為了開啟對端的連線,核心需要傳送乙個syn 並附帶乙個回應前面乙個syn 的ack。也就是所謂三次握手中的第二次握手。這個設定決定了核心放棄連線之前傳送syn+ack 包的數量。
net.ipv4.tcp_syn_retries = 1
#對於乙個新建連線,核心要傳送多少個 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沒有記憶體壓力,2nd進入記憶體壓力階段,3rdtcp拒絕分配socket(單位:記憶體頁)
net.ipv4.tcp_fin_timeout = 1
#表示如果套接字由本端要求關閉,這個引數決定了它保持在fin-wait-2狀態的時間為15秒
net.ipv4.tcp_keepalive_time = 60
#表示當keepalive起用的時候,tcp傳送keepalive訊息的頻度。預設是2小時,改為1分鐘。
net.ipv4.tcp_keepalive_probes= 1
net.ipv4.tcp_keepalive_intvl= 2
#意思是如果某個tcp連線在idle 2分鐘後,核心才發起probe.如果probe 1次(每次2秒)不成功,核心才徹底放棄,認為該連線已失效.
最後使配置立即生效,可使用如下命令:
#/sbin/sysctl -p
Rhel5 x和CentOS5 x核心優化詳細解析
主要是針對 etc sysctl.conf裡的各項進行詳細解析,所有內容經網路蒐集並整理,方便大家學習了解。系統優化項 kernel.sysrq 0 使用sysrq組合鍵是了解系統目前運 況,為安全起見設為0關閉 kernel.core uses pid 1 控制core檔案的檔名是否新增pid作為...
Linux啟動流程分析 CentOS 5 x
鳥哥的linux私房菜 學習筆記 當按下電源鍵後計算機硬體會主動讀取bios來載入硬體資訊及進行硬體系統的自我測試,之後系統會主動讀取第乙個可啟動的裝置 由bios設定的 此時就可以讀入引導裝載程式了 boot loader 引導裝載程式可以指定使用哪乙個核心檔案來啟動,並實際載入核心到記憶體當中解...
golang在centos5 x上編譯
go官方支援的linux最低核心版本為 2.6.23 可以參考 centos5.x 的核心版本為2.6.18 go 1.9.3 左右對 net http 修改了,使用大於其以上的版本編譯的可執行程式,執行於低於2.6.23版本系統時,會panic.因此使用1.9.0嘗試編譯 wget tar c u...