松花皮蛋的黑板报
  • 分享在京东工作的技术感悟,还有JAVA技术和业内最佳实践,大部分都是务实的、能看懂的、可复现的

扫一扫
关注公众号

快速定位CPU性能问题的套路

博客首页文章列表 松花皮蛋me 2019-03-10 11:07

一、CPU性能指标

1、CPU使用率:描述了非空闲时间占比总CPU时间的百分比,根据CPU上运行任务的不同,又被分为用户CPU、系统CPU、等待IOCPU、软中断和硬中断

2、平均负载:描述了系统的平均活跃进程数,反应了系统过去1、5、15分钟的平均负载

3、进程上下文切换:无法获取资源而导致的自愿上下文切换。被系统强制调度导致的非自愿上下文切换

4、CPU缓存的命中率:CPU缓存的速度介于CPU和内存之间,缓存的是热点的内存数据,缓存分为L1\L2\L3等三级缓存,缓存大小依次增大,性能反之

二、性能工具

三、套路

通过这张图可以发现top\vmstat\pidstat基本上包含了重要的CPU性能指标

1、从top的输出可以得到各种CPU使用率以及僵尸进程和平均负载等信息

2、从vmstat的输出可以得到上下文切换次数、中断次数、运行状态和不可中断状态的进程数

3、从pidstat的输出可以得到进程的用户CPU使用率、系统CPU使用率、以及自愿上下文切换和非自愿上下文切换的情况

另外我们还可以通过perf工具对性能采样,结合火焰图报告进行调用分析https://github.com/brendangregg/FlameGraph