linux經常使用性能監測命令top、sar、iostat、pidstat
1,top
- 經常使用選項:
-p <pid> 持續跟蹤某一進程的狀態;
- 經常使用操做指令:
數字鍵1:展開全部cpu的狀態;
shift+< 或者 shift+> : 切換排序的參照字段,向左或者向右;
- 特殊用法,用於持續跟蹤:
把輸出結果重定向到文件:top -n 1 -b | head -30 > top.log
2,sar (由 sysstat 包提供,操做系統可能不自帶)
- sar命令能夠監控的性能指標也不少,我習慣上用來監控網卡流量(-n):
- 用法: sar -n EDEV 1(採樣間隔) 10(採樣次數)
- -n DEV : 網絡接口統計信息。
-n EDEV : 網絡接口錯誤。
-n IP : IP數據報統計信息。
-n EIP : IP錯誤統計信息。
-n TCP : TCP統計信息。
-n ETCP : TCP錯誤統計信息。
-n SOCK : 套接字使用。
- 此外: -u 選項監控cpu , -r 內存 , -d 磁盤io等;
3,iostat
- 經常使用用法: iostat -dmx 1(採樣間隔) 10(採樣次數)
- 輸出樣例:
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
sda 1.58 40.77 39.45 273.86 1.10 7.80 58.15 3.69 11.79 1.41 44.07
- 後面3個指標: io延遲 、io等待時間 、io利用率
- %util很大 超過80% 設備很忙
await遠大於svctm 延遲很大
avgqu-sz 隊列很長
r/s,w/s,IO讀寫次數頻繁
IO等待時間佔用百分比大 %iowait
iowait% <20% 良好
iowait% <35% 通常
iowait% >50%
svctm通常要小於await(由於同時等待的請求的等待時間被重複計算了),svctm的 大小通常和磁盤性能有關,CPU/內存的負荷也會對其有影響,請求過多也會間接致使svctm的增長,通常svctm值在15如下會被認爲是一個健康的數值。
await的大小通常取決於服務時間(svctm)以及I/O隊列的長度和I/O請求的發出模 式。若是svctm比較接近await,說明I/O幾乎沒有等待時間;
若是await遠大於svctm,說明I/O隊列太長,應用獲得的響應時間變慢,若是響應時間超過了用戶能夠允許的範圍,這時能夠考慮更換更快的磁盤,調整內核elevator算法,優化應用,或者升級CPU。
4,smartctl
- 查看磁盤smart信息:smartctl -a /dev/sda
- 查看磁盤健康信息: smartctl -H /dev/sda
- 對磁盤進行自檢: smartctl -C -t short(設置爲long耗時較長) /dev/sda
- 查看自檢信息: smartctl -l selftest /dev/sda
5,pidstat
- 查看進程使用資源的狀況
- 經常使用用法,每秒一次查看httpd進程的IO使用狀況(-d):
pidstat -d 1 -p 9323 或者:
pidstat -d 1 | grep httpd
- 此外,相似的,也支持 -u CPU , -r 內存;
歡迎關注本站公眾號,獲取更多信息