Linux CPU性能优化——迅速分析CPU的瓶颈

文章目录

  • CPU性能指标
  • 针对CPU指标使用性能工具排查
  • 参考文献

写在前面:
由于之前在开发分布式系统中由于云服务器性能原因,导致系统总是断连等错误。但是之前一般只是简单gdb调试一下,定位错误异常艰难,所以决定开设此专栏,系统的记录我学习Linux 性能优化的历程。
也是非常感谢极客时间的倪朋飞老师分享这些学习资源。

作者邮箱:[email protected]
时间:2021/04/29 16:11
实现环境:Linux
系统:ubuntu 18.04

CPU性能指标

最先想到的,也是最常见的,肯定就是CPU使用率

第二个容易想到的就是平均负载

第三个就是进程上下文切换

除了上面的三个,还有一个重要的指标,也就是CPU缓存的命中率。由于CPU和内存在速度上的巨大差距,才在CPU核心中引入了缓存的概念。
Linux CPU性能优化——迅速分析CPU的瓶颈_第1张图片
CPU缓存的速度介于CPU和内存之间,缓存的是热点的内存数据。从上图可以看到,L1~L3 三级缓存的大小依次增大,响应的,性能依次降低。而它们的命中率,衡量的是CPU缓存的复用情况,命中率越高表示性能越好
Linux CPU性能优化——迅速分析CPU的瓶颈_第2张图片

针对CPU指标使用性能工具排查

  • 平均负载:我们可以先使用uptime,查看系统的平均负载;而在平均负载升高后,使用mpstat和pidstat,分别观察每个CPU和每个进程CPU的使用情况,进而找出导致平均负载升高的进程。
  • 上下文切换:先使用vmstat,查看系统的上下文切换次数和中断次数;然后通过pidstat,观察了进程的自愿上下文切换和非自愿上下文切换情况,最后通过pidstat,观察进程自愿上下文切换和非自愿上下文切换情况;最后通过pidstat,观察线程的上下文切换情况,找出上下文切换次数增多的根源。
  • CPU使用率:可以先用top观察系统CPU升高,然后可以使用pidstat对怀疑进程进行排查,或者使用pref工具对短时的系统数据进行排查

以下是倪朋飞老师整理的图:
Linux CPU性能优化——迅速分析CPU的瓶颈_第3张图片
但是呢,这些工具之间也是有联系的,我们可以先用几个工具先去缩小范围,然后再用其他工具去具体排查,具体的使用流程如下:
Linux CPU性能优化——迅速分析CPU的瓶颈_第4张图片

参考文献

[1] 倪朋飞.Linux性能优化实战.极客时间

你可能感兴趣的:(#,linux性能优化,linux,cpu,性能优化)