導航:首頁 > 編程系統 > linux內核性能調優

linux內核性能調優

發布時間:2025-03-07 06:38:56

1. Linux性能監控與調優工具

除了保證程序的正確性以外,在項目開發中往往還關心性能和穩定性。我們往往要對內核、應用程序或整個系統進行性能優化。在性能優化中常用的手段如下:

  1. 使用top、vmstat、iostat、sysctl等常用工具

top命令用於顯示處理器的活動狀況。在預設情況下,顯示佔用CPU最多的任務,並且每隔5s做一次刷新;vmstat命令用於報告關於內核線程、虛擬內存、磁碟、陷阱和CPU活動的統計信息;iostat命令用於分析各個磁碟的傳輸閑忙狀況;netstat是用來檢測網路信息的工具; sar用於收集、報告或者保存系統活動信息,其中,sar用於顯示數據,sar1和sar2用於收集和保存數據

sysctl是一個可用於改變正在運行中的Linux系統的介面。用sysctl 可以讀取幾白個以上的系統變數,如用sysctl—a可讀取所有變數。

sysctl的實現原理是:所有的內核參數在/proc/sys中形成一個樹狀結構,sysctl系統調用的內核函數是sys_sysctl,匹配項目後,最後的讀寫在do_sysctl_strategy中完成。

2.使用高級分析手段,如OProfile、gprof

OProfile可以幫助用戶識別諸如模塊的佔用時間、循環的展開、高速緩存的使用率低、低效的類型轉換和冗餘操作、錯誤預測轉移等問題。它收集有關處理器事件的信息,其中包括TLB的故障、停機、存儲器訪問以及緩存命中和未命中的指令的攫取數量。OProfile支持兩種采樣方式:基於事件的采樣(Event Based)和基於時間的采樣(Time Based)。基於事件的采樣是OProfile只記錄特定事件(比如L2緩存未命中)的發生次數,當達到用戶設定的定值時Oprofile就記錄一下(采一個樣)。這種方式需要CPU內部有性能計數器(Performace Counter))。基於時間的采樣是OProfile藉助OS時鍾中斷的機制,在每個時鍾中斷,OProfile都會記錄一次(采一次樣)。引入它的目的在於,提供對沒有性能計數器的CPU的支持,其精度相對於基於事件的采樣要低,因為要藉助OS時鍾中斷的支持,對於禁用中斷的代碼,OProfile不能對其進行分析。

2. Linux上TCP的幾個內核參數調優

Linux作為強大操作系統提供了豐富的內核參數進行調優,TCP內核參數調優尤其重要。本文聚焦於內網環境下的TCP參數調優,分享一些實踐經驗。

調優清單包括:tcp_max_syn_backlog、somaxconn、tcp_abort_on_overflow。這三個參數關聯內核TCP連接緩沖隊列,設定過小可能導致連接被無端丟棄,引起詭異現象,建議增大Backlog隊列大小以避免問題。

設置tcp_abort_on_overflow可避免連接被意外丟棄。同時,確保Java應用正確配置Backlog參數,避免默認值過小導致連接問題。

考慮tcp_tw_recycle參數可能帶來的負面影響,如NAT環境下連接成功率降低。高版本內核已優化此參數,如遇TIME_WAIT問題,調整相關參數可緩解。

優化tcp_syn_retries參數,設置合適的重傳次數以改善連接建立時的超時時間。Java應用通常可通過API設置超時時間,降低依賴於內核參數的重要性。

調整tcp_retries2參數,用於計算傳輸過程中的重傳次數,對特定場景如長ReadTimeout設置有顯著影響。優化此參數可減少宕機時的響應延遲,但資源隔離策略也是關鍵。

在物理機宕機與進程宕機情形下,內核行為存在差異。物理機宕機會導致內核發送reset,減輕線程阻塞問題。

考慮tcp_slow_start_after_idle參數,Linux默認開啟。關閉此參數可提高某些請求的傳輸速度,適用於網路條件變化頻繁的場景。在內網系統間調用中,通常無需啟用此功能。

初始CWND大小對請求速率有顯著影響。Linux 2.6.32及以前版本初始CWND為(2-4)個mss,現代版本調整為RFC 6928推薦的10段,即14K左右,更適合內網環境。

總之,Linux內核提供豐富參數供調優,選擇最適合當前環境的組合至關重要。潛心研究,找到最佳實踐,可顯著提升系統性能。

閱讀全文

與linux內核性能調優相關的資料

熱點內容
小安卓怎麼找到app根目錄 瀏覽:161
海馬玩模擬器密碼錯誤 瀏覽:704
coloros是什麼文件可刪除嗎 瀏覽:65
dnf力量寶珠90版本 瀏覽:223
linuxphp安裝gd庫 瀏覽:666
win10桌面上的軟體不見了怎麼辦啊 瀏覽:863
蘋果6屏幕下面怎麼透明 瀏覽:945
中國想學編程學什麼專業 瀏覽:681
如何製作假拍文件 瀏覽:927
怎麼檢查hpv數據 瀏覽:194
js添加刪除class 瀏覽:571
做nc編程如何了解刀具以及工藝 瀏覽:179
javaaes加密實例cfb 瀏覽:195
javacheckbox怎麼用 瀏覽:788
怪物獵人ol大劍升級路線 瀏覽:277
discuz首頁幻燈片代碼 瀏覽:971
豆瓣電影資料庫是什麼 瀏覽:213
稅務總局政策文件如何下載 瀏覽:658
win10更新中能關機嗎 瀏覽:430
為什麼plc編程沒有思路 瀏覽:573

友情鏈接