系統性能優化流程

來自老外《Linux Performance Tools》pdf的部分記錄。

======== 分割線 ========

理論:

  1. 檢查資源:輸入飽和度;工作單元利用率;輸出錯誤日誌。
  2. 問自己5次Why?
  3. 另一些方法:工作量描述;深度分析;事件追蹤;基線數據;靜態性能調優
  4. 根據上述結論,開始找工具幹活

PS:任何工具都是基於內核接口(/proc, /sys, ...)

工具分類:

  • 觀察:安全,常用,基於資源開銷
  • 標杆確定:負載測試,注意這會導致競爭問題
  • 調優:更改導致危險,隨着負載而傷性能
  • 靜態:check配置文件,安全

觀察:

  • uptime 平均負載
  • top 處理器週期統計
  • ps -ef f 進程狀態列表
  • vmstat -Sm 1 虛擬內存統計
  • free -m 內存使用量
  • netstat 查網絡的複合工具,參數很多,如-ntl
  • ss socket統計
  • slabtop 內核分配內存使用量

測試:

有效的測試:以小時單位運行測試;期間用觀察工具分析和確認性能。

  • perf 綜合分析工具,前提是安裝linux-tool
  • dd、hdparm 磁盤測試
  • ab、openssl 應用測試
  • ping、traceroute 網絡測試

調優:

通用接口:sysctl
  • CPU調度 nice|renice、taskset、chcpu
  • IO存儲 tune2fs、ionice、blockdev
  • 網絡 ethtool、tc、ip、route
  • 應用自己的配置文件

工作方法:發現問題 - 假設 - 預言 - 測試 - 分析

轉載於:https://my.oschina.net/yygh/blog/352083