一、性能指标
1、性能指标思维导图
2、cpu使用率
3、cpu平均负载
4、cpu缓存的命中率
cpu 在访问内存的时候,免不了要等待内存的响应。为了协调这两者巨大的性能差距,cpu 缓存(通常是多级缓存)就出现了
二、性能工具
掌握了 cpu 的性能指标,我们还需要知道,怎样去获取这些指标,也就是工具的使用
1、根据指标找工具
2、根据工具找指标
三、把性能指标和工具联系起来
四、如何迅速分析cpu瓶颈
通过这张图你可以发现,这三个命令,几乎包含了所有主要的cpu性能指标
1、从 top 的输出可以得到各种 cpu 使用率以及僵尸进程和平均负载等信息
1、pidstat 输出的进程用户 cpu 使用率升高,会导致 top 输出的用户 cpu 使用率升高。所以,当发现 top 输出的用户 cpu 使用率有问题时,可以跟 pidstat 的输出做对比,
观察是否是某个进程导致的问题。
2、而找出导致性能问题的进程后,就要用进程分析工具来分析进程的行为,比如使用 strace 分析系统调用情况,以及使用perf 分析调用链中各级函数的执行情况。
2、从 vmstat 的输出可以得到上下文切换次数、中断次数、运行状态和不可中断状态的进程数。
1、top 输出的平均负载升高,可以跟 vmstat输出的运行状态和不可中断状态的进程数做对比,观察是哪种进程导致的负载升高。
2、如果是不可中断进程数增多了,那么就需要做 i/o 的分析,也就是用 dstat 或 sar 等工具,进一步分析 i/o...
3、如果是运行状态进程数增多了,那就需要回到 top 和 pidstat,找出这些处于运行状态的到底是什么进程,然后再用进程分析工具,做进一步分析。
3、从 pidstat 的输出可以得到进程的用户 cpu 使用率、系统 cpu 使用率、以及自愿上下文切换和非自愿上下文切换情况
当发现 top 输出的软中断 cpu 使用率升高时,可以查看/proc/softirqs 文件中各种类型软中断的变化情况,确定到底是哪种软中断出的问题
比如,发现是网络接收中断导的问题,那就可以继续用网络分析工具 sar 和 tcpdum来分析