0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux性能问题一直是程序员头上的“紧箍咒”

Linux爱好者 来源:Linux爱好者 2020-08-16 09:25 次阅读

作为程序员,和 Linux 打交道,在服务器上分析系统性能情况,是每一个后端工程师都无法避开的事情。

无论你是开发还是运维,可能都经历过这样的场景:

流量高峰期,服务器 CPU 使用率过高报警,你登录 Linux 上去 top 完之后,却不知道怎么进一步定位,到底是系统 CPU 资源太少,还是程序并发部分写得有问题?

系统并没有跑什么吃内存的程序,但在敲完 free 命令之后,却发现已经没什么内存了,到底是哪里占用了内存?为什么?

一大早就收到 Zabbix 告警,你发现某台存放监控数据的数据库主机 CPU 的 I/O Wait 较高,该怎么办?

Linux性能问题一直是程序员头上的“紧箍咒”,大多数时候,我们只能看到“症状”,却不知道从哪儿下手排查和解决。就算看了很多资料和书籍,一旦涉及到具体问题,还是会一脸懵逼。

谈学习经验,有 3 点比较重要:

先掌握性能优化的思路和方法,尝试大量 Linux 性能工具;

把性能问题跟系统原理关联起来,特别是把应用程序、库函数、系统调用、内核和硬件等不同的层级贯穿起来;

最终从学习到输出,从实践中总结经验。

这其中,一开始就劝退你的,可能就是 Linux 性能工具的使用,它除了要考虑性能指标的目的外,还要结合待分析的环境来综合选取。

虽说咱有布伦丹·格雷格(Brendan Gregg)大师整理的性能工具图谱,相信你也多少参考过,但其实它还不够具体,使用时还要去查找每个工具的手册,对比分析做出选择。

所以每次用的时候,大家都会想,有没有更好的方法来理解这些工具呢?相信当你看了倪朋飞《Linux 性能优化实战》中总结的几个性能工具图,一定会解决你的问题的。

他根据「性能指标」的不同,将工具划分为CPU、内存、磁盘 I / O及网络,4 大类型,会让你一次性把性能工具搞明白了。

看这些图,就很清晰了,比如,当遇到 I/O 性能问题时,可以根据不同的性能指标,使用 iostat、iotop、blktrace 等工具分析磁盘 I/O 的瓶颈。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10412

    浏览量

    206465
  • Linux
    +关注

    关注

    87

    文章

    10979

    浏览量

    206673
  • 程序员
    +关注

    关注

    4

    文章

    931

    浏览量

    29566

原文标题:Linux 性能问题难点解析(内附 4 套图谱)

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FOC电机控制一直是恒定转矩,如何改成恒定转速控制?

    FOC电机控制一直是恒定转矩,如何改成恒定转速控制?
    发表于 03-28 06:25

    为什么stm32G030C8T6 ADC读取到的一直是4095?

    大佬们,为什么adc读到的值一直是4095,换个通道还是样,万用表量的值都小于3V,是不是配置有问题
    发表于 03-26 06:03

    AD5934模拟IIC通讯,读出的温度值为什么一直是个固定值?

    现在读出的温度值一直是54,手模IC表面温度没有变化,怀疑是通讯有问题,哪位有用到模拟IIC和AD5934通讯吗?有没有例程,提供参考下,非常感谢!
    发表于 12-22 08:00

    AD7705的DRDY为什么一直是高电平?

    AD7705的DRDY一直是高电平,一直没有变成低电平,下面是我的初始化程序,在while(DRDY_get)语句一直出不去了,求帮忙看看是什么问题,谢谢! void init_770
    发表于 12-20 06:45

    有谁知道为什么AD7712的DRDY引脚一直是高电平吗?

    有谁知道为什么AD7712的DRDY引脚一直是高电平吗?它不是上电就一直工作即使没有输入,它的DRDY引脚应该会周期性的变为低电平啊?一直是高电平也就没有数据输出了。
    发表于 12-13 07:41

    ad7124配置好之后不能转换,status寄存器的最高位一直是1的原因?怎么处理?

    配置完寄存器之后,等待RDY为低,然后去读取数据寄存器,发现status位一直是1,硬件确认过没有问题, 那为什么我status的RDY位一直是1, 我猜测是adc没有启动转换,导致adc
    发表于 12-11 07:05

    AD7656输出为0,busy一直是低电平的原因?

    ad7656没有输出,busy一直是低电平。有没有大神知道是哪儿出了问题?
    发表于 12-01 06:00

    esp8266返回信息一直是Content-Length: 0怎么解决?

    小白新入手安信可 本人使用esp8266模块往服务器上传送数据时,返回的信息一直是Content-Length: 0,请大家帮帮忙,谢谢了!
    发表于 11-06 07:40

    用multisim模拟同相放大电路,为什么输出不会放大,一直是700mv

    我用multisim模拟同向相放大电路,输入1v的直流信号,为什么用示波器在输出端检测不会放大输入信号,一直是700mv?
    发表于 10-24 15:47

    学习野火的库函数文件,结果一直是#elif报错的原因?

    学习野火的库函数文件,结果一直是#elif报错是什么原因?
    发表于 10-10 06:09

    IIC一直是主机提供时钟吗?

    IIC一直是主机提供时钟么
    发表于 10-08 14:25

    串口输出变量值一直是0或者一直不变的原因?

    串口输出变量值一直是0或者一直不变。 用输入捕获实验改的测距实验,测距的时间可以正常输出,但是距离经过运算公式之后就一直输出是0,是咋回事啊。
    发表于 09-27 07:41

    霓虹灯程序员指南

    如果您对ARM技术完全陌生,请阅读Cortex-A系列程序员指南,了解有关ARM架构配置文件和般编程指南的信息。 ·霓虹灯技术是ARM高级单指令多数据(SIMD)扩展的实现。 ·霓虹灯单元是执行
    发表于 08-17 06:32

    ARMv8-A霓虹灯程序员指南

    Arm Neon技术是种64位或128位混合单指令多数据(SIMD)架构,旨在提高多媒体和信号处理应用程序性能。这些应用程序包括以下内容: •视频编解码•音频编解码•3D图形处理•
    发表于 08-08 07:25