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状态-设计涉及指标】

关注点:

    是否使用交换内存

    每个进程消耗了多少内存空间

top

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
上一篇:【Android 逆向】Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )


下一篇:采用全面的数据中心保护解决方案提高系统可靠性