高可用架構 – 系統性能評估

  • 2019 年 12 月 15 日
  • 筆記

性能評估的要點

  • CPU

主要工具:vmstat

  • 內存

主要工具:free

  • 磁盤I/O

主要工具:iostat、sar

  • 網絡I/O

主要工具:ifstat

  • 系統整體性能

主要工具:top

CPU 評估

vmstat 命令結果分析:

  • procs

r 運行和等待CPU時間片的進程數,。

b 等待資源的進程數。

  • swap

si 每秒從磁盤讀入虛擬內存的大小。

so 每秒虛擬內存寫入磁盤的大小。

  • cpu

us 用戶進程CPU使用率。

sy 系統CPU使用率。

id 空閑CPU使用率。

id + us + sy = 100

經驗:

  • procs:r 如果長期大於CPU的個數,說明CPU遇到瓶頸。
  • procs:b 值越高,系統壓力越大。
  • swap:si 如果這個值大於0,表示物理內存不夠用或者內存泄露了。
  • cpu:us 值越高,說明用戶進程消耗CPU時間越多,如果長期大於50%,需要考慮優化程序。
  • cpu:sy 如果太高,表示系統調用時間長,例如是IO操作頻繁。
  • 如果 us + sy 大於80%,說明可能存在CPU不足。

內存評估

free 命令重點指標:free(應用程序可用內存數量)。

經驗

  • "free/total > 70%" 內存充足。
  • "free/total < 20%" 內存不足。
  • "20% < free/total < 70%" 內存基本夠用。

磁盤I/O評估

iostat 命令結果分析:

  • rkB/s 每秒讀取數據量kB
  • wkB/s 每秒寫入數據量kB
  • svctm I/O請求的平均服務時間,單位毫秒
  • await I/O請求的平均等待時間,單位毫秒,值越小,性能越好
  • util 1秒中有百分幾的時間用於I/O操作。接近100%時,表示磁盤帶寬跑滿。

經驗

  • rkB/swkB/s 的值如果長期較高,說明持續有大量數據讀寫,需要警惕。
  • svctmawait 值相近時,說明幾乎沒有I/O等待,磁盤性能好。如果 await 遠高於 svctm,說明I/O隊列等待太長,需要優化程序或更換磁盤。

網絡I/O評估

ifstat 命令結果分析:

  • RX Pkts/Rate 數據包接收流量
  • RX Errs/Drop 丟包
  • TX Pkts/Rate 數據包發送流量
  • RX Data/Rate 數據接收流量
  • TX Data/Rate 數據發送流量

系統整體性能評估

top 命令重要指標:load average,表示任務隊列的平均長度(1分鐘、5分鐘、15分鐘前到現在平均值)。

經驗:

這3個值的大小一般不能大於系統CPU的核數,如果長期大於CPU的核數,說明CPU很繁忙,負載很高。

例如圖中有2個CPU,那麼健康值為:load average < 2