前两天公司双十一做大促活动,半夜突然来了一大波流量,你在睡梦中就收到了一大波报警短信,仔细一看,说是服务器CPU使用率过高。你没敢半点马虎,揉了揉眼睛,带上眼镜,打开电脑,直接就登录到了Linux服务器。

登录成功之后,你发现服务器确实有些慢,就连输个命令都比平时慢了一拍。简单输入Top命令之后,你根据参数看到系统的CPU使用率奇高无比,二话没说,你赶紧按照CPU使用率排序找出CPU使用率最高的那个进程。从排序结果可以确定,你昨天刚升级的服务CPU使用率居然高达700%,根据直觉推断,你觉得肯定是昨天升级的服务并发处理逻辑有问题。

但是这个应用的负载特别大,业务逻辑也比较复杂,你一时也不知道到底是哪块逻辑出的问题。网络有人说,可以使用GDB来调试应用程序,可是gdb会把进程中断掉,直接影响线上的业务。也有人说可以使用perf工具来查,你照猫画虎,发现只是一些看起来像是Linux内核中的函数占用来比较多的CPU。查了半天,最终发现还是没能弄明白到底是哪里出现的问题,留下的都是无奈和迷茫。

如果你对这样的场景感同身受,那我觉得我们可以详细聊聊。作为一个程序员,说实话,我觉得和Linux打交道,在服务器上分析系统性能情况是我们每一个后端程序员都无法避开的事情。

有人认为,这事是运维的工作范畴,我对这话一点都不认同。一个优秀的程序员,不应该在这事上给自己设边界,更何况我们有的人还喜欢在Linux上做开发呢,如果连这点事情都整不明白,那我确信,你肯定也搞不懂高并发、分布式等相关的知识,因为这些内容都是一脉相承的。

一直以来,我都在云计算领域工作。对于服务器性能的关注,可以追溯到我刚参加工作那会儿。同样,我也遇到过上面例子中的那个场景,当时,我同样是一头雾水,两眼发懵,甚至还被Leader痛批。

在经受了这样的挫折之后,我知耻而后勇,阅读了几本经典书籍,学习了大量性能优化的思路和方法,这期间尝试了大量的Linux性能工具。在不断的实践和总结后,我终于知道,怎么把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序、库函数、系统调用、再到内核和硬件等不同的层级贯穿起来

为了让读者对性能有个全面的认识,笔者精心绘制了一张性能调优思维导图,里面涵盖了大部分性能分析和优化都会包含的知识。

这张图知识点可谓全面。但看完是否有点头大的感觉,实际上要真正掌握这些知识点,并能熟练应用涉及到的各个性能工具是很困难的。为了让大家轻松上手,Linux性能优化实战专栏以案例驱动的思路,讲解Linux性能的基本指标、工具,以及相应的观测、分析和调优方法

倪朋飞,微软Azure资深工程师。主要负责开源容器编排系统Kubernetes在Azure的落地实践。之前先后任职于盛大云和腾讯,这十年来,我一直在云计算领域工作,主攻IaaS和容器技术,所以自己也对Linux性能优化这套东西有一些自己的思考和沉淀。

1、掌握Linux必备的基本原理以及Linux系统必懂的性能指标(CPU、磁盘 I/O、内存以及网络)和性能工具。2、结合实际案例分析,让你在遇到资源瓶颈时不再束手无策,学会观测和准确定位、快速分析并高效优化,具备高手解决性能优化问题的思路和全局观。3、5个综合实战模块还原真实的工作场景,结合开源项目、框架或者系统设计的案例,手把手带你在“高级战场”演练,目的是让你把之前学到的所有知识融会贯通,马上能将所学应用在工作当中。4、针对订阅用户会设置答疑篇章,我相信在学习完每一个模块之后,你都会有很多的问题,在这里,我会拿出提问频次较高的问题一对一给你系统解答。
分类: 源码分享 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录