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

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

作者邮箱:2107810343@qq.com
时间:2021/04/29 16:11
实现环境:Linux
系统:ubuntu 18.04

CPU性能指标

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

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

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

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

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

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

以下是倪朋飞老师整理的图:
在这里插入图片描述
但是呢,这些工具之间也是有联系的,我们可以先用几个工具先去缩小范围,然后再用其他工具去具体排查,具体的使用流程如下:
在这里插入图片描述

参考文献

[1] 倪朋飞.Linux性能优化实战.极客时间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenmingik

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值