每个后端程序员都该懂的事

题图:by watercolor.illustrations from Instagram

如果你是后端程序员,可能经历过这样的场景:

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

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

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

如果你对这样的场景感同身受,那我觉得你还没有成为一个「更上一层楼」的服务器端工程师。极客们常说,只有知道一件事物的原理,它才是有用的东西。事实上,作为一个后端工程师和 Linux 打交道是司空见惯的事情,在服务器上分析系统性能情况是每个后端程序员都无法避开的事。

你愿意束手无策等待帮助,还是游刃有余庖丁解牛?

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

鉴于此,我们邀请了微软 Azure 资深工程师倪朋飞开设了一门《Linux 性能优化实战》,专栏+音频形式,预计 50 讲左右。

说到微软,大家总以为和 Linux 是死敌,微软工程师都用 C# 和 Window Server 等,其实根本不是。倪朋飞在微软主要负责开源容器编排系统 Kubernetes 在 Azure 的落地实践,Azure 上有大量的 Linux 云服务器。倪老师之前曾任职于盛大云和腾讯,十年来一直在云计算领域工作,主攻 IaaS 和容器技术,所以对 Linux 性能优化这套知识体系又深厚的沉淀和丰富的实践经验。

在工作期间,他尝试了大量的 Linux 性能工具,努力攀登性能之巅,在不断的实践和总结后,倪老师终于知道如何把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序、库函数、系统调用、再到内核和硬件等不同的层级贯穿起来。

为了让读者对性能有个全面的认识,倪朋飞精心绘制了一张思维导图,里面涵盖了大部分性能分析和优化的知识。(后台回复Linux获取)

Linux 性能和优化入门难,但进入这个领域后就会如鱼得水,学习和实践相互印证,根本停不下来。但如何入门呢?第一带着问题学习,而不是先去啃那几本厚厚的原理书籍,因为那样很容易把自己的信心压垮。第二就是从学习到输出,也就是不断实践。

事实上,只要你了解基础系统组件的原理和协作方式,掌握基本的性能指标和工具,熟悉实际工作中性能优化的常用技巧,就可以比较准确分析和优化大多数的性能问题了。在这个认知和基础上,再反过来去阅读那些经典的操作系统或者其它图书,才会事半功倍。

所以,这个专栏的的交付思路也是这样,作者会以案例驱动的思路,给你讲解 Linux 性能的基本指标、工具,以及相应的观测、分析和调优方法。目录也是这个学习轨迹:

学习完这个专栏你的获得将是:

1、掌握 Linux 必备的基本原理以及 Linux 系统必懂的性能指标(CPU、磁盘 I/O、内存以及网络)和性能工具。

2、结合实际案例分析,让你在遇到资源瓶颈时不再束手无策,学会观测和准确定位、快速分析并高效优化,具备高手解决性能优化问题的思路和全局观。

3、五个综合实战模块还原真实的工作场景,结合开源项目、框架或者系统设计的案例,手把手带你在「高级战场」演练,目的是让你把之前学到的所有知识融会贯通,马上能将所学应用在工作当中。

4、针对订阅用户会设置答疑篇章,作者针对典型问题,进行公开答疑解惑。

优惠期 68 元,这里扫码购买还有 6 元现金奖励

小企鹅有木有很可耐?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181119B16H6T00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券