天天看點

linux系統性能分析工具并定位到具體程序

【涉及工具】

top  綜合,偏CPU和memory

dstat 綜合, 偏磁盤

pidstat 

iostat 磁盤io 全局

iotop 磁盤io 精确到程序

iftop 網絡,事實重新整理

ss 取代netstat 并且速度更快

【檢視cpu狀态-設計涉及名額】

1 cpu使用率: 使用者 系統

2 cpu累計使用時長

3 中斷 上下文切換等(使用不是很多)

CPU檢視工具 top dstat

top

選項

-bn1

-c  檢視全指令

top -bn1c 一次記錄就結束并列印command的全指令

指令

1 完整的列出所有的cpu核心數

P 根據CPU高低排序

M 根據記憶體高低排序

T 根據運作時間排序

B 行的高亮顯示

x 列的高亮顯示

shift + <或者 > 改變高亮的排序列

h 幫助資訊

dstat(python腳本)

dstat -lcm --top-cpu

【檢視memory狀态-設計涉及名額】

關注點:

    是否使用交換記憶體

    每個程序消耗了多少記憶體空間

free

dstat lcmd --top-mem

【檢視磁盤狀态-設計涉及名額】

提示: 磁盤的性能瓶頸是比較難以排除出來的,不想cpu和記憶體那樣比較明顯的看的出來。

關注名額

    1 讀寫量/s  dstat iotop pidstat 精确到程序

    2 每次讀寫的延遲時間 iostat(全局)

看讀寫量  iostat -x 1

看延遲效果 一般使用dstat(機關比較人性 整理過)

檢視那個程序使用io最高 iotop

Total DISK READ: 7.02 M/s | Total DISK WRITE: 3.12 M/s

iostat中的幾個參考值:

svctm < await(同樣等待的請求時間被重複計算)。如果svctm比較接近awati 說明IO幾乎沒有等待時間。 如果await遠遠大于svctm,說明IO隊列太長。

await: 平均每次裝置IO操作等待的時間(毫秒)。即 delta(ruse+wuse) /delta(rio+wio)

svcm:平均每次裝置IO操作服務的時間(毫秒) 會将await計算在内

%util 一秒中有百分之多少的時間用于IO操作或者說一秒中有多少時間IO隊列是非空的。

本文轉自殘劍部落格51CTO部落格,原文連結http://blog.51cto.com/cuidehua/1867088如需轉載請自行聯系原作者

cuizhiliang

繼續閱讀