高可用架構 – 系統性能評估
- 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
每秒讀取數據量kBwkB/s
每秒寫入數據量kBsvctm
I/O請求的平均服務時間,單位毫秒await
I/O請求的平均等待時間,單位毫秒,值越小,性能越好util
1秒中有百分幾的時間用於I/O操作。接近100%時,表示磁盤帶寬跑滿。
經驗:
rkB/s
和wkB/s
的值如果長期較高,說明持續有大量數據讀寫,需要警惕。svctm
和await
值相近時,說明幾乎沒有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
。