开篇
怎么把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序、库函数、系统调用、再到内核和硬件等不同的层级贯穿起来。
问题:
- 流量高峰期,服务器 CPU 使用率过高报警,你登录 Linux 上去 top 完之后,却不知道怎么进一步定位,到底是系统 CPU 资源太少,还是程序并发部分写的有问题?
- 系统并没有跑什么吃内存的程序,但是敲完 free 命令之后,却发现系统已经没有什么内存了,那到底是哪里占用了内存?为什么?
- 一大早就收到 Zabbix 告警,你发现某台存放监控数据的数据库主机的 iowait 较高,这个时候该怎么办?
性能问题为什么这么难呢?
- 系统工程,总是牵一发而动全身。
- 它涉及了从程序设计、算法分析、编程语言,再到系统、存储、网络等各种底层基础设施的方方面面。
- 每一个组件都有可能出问题,而且很有可能多个组件同时出问题。
学习重点
- 了解少数几个系统组件的基本原理和协作方式
- 掌握基本的性能指标和工具
- 学会实际工作中性能优化的常用技巧
- 在这个认知的基础上,再反过来去阅读那些经典的操作系统或者其它图书
专栏
案例驱动的思路,给你讲解 Linux 性能的基本指标、工具,以及相应的观测、分析和调优方法。
5 个模块。前 4 个模块我会从资源使用的视角出发,带你分析各种 Linux 资源可能会碰到的性能问题,包括 CPU 性能、磁盘 I/O 性能、内存性能以及网络性能。
每个模块还由浅入深划分为四个不同的篇章。
- 基础篇,介绍 Linux 必备的基本原理以及对应的性能指标和性能工具。比如怎么理解平均负载,怎么理解上下文切换,Linux 内存的工作原理等等。
- 案例篇,这里我会通过模拟案例,帮你分析高手在遇到资源瓶颈时,是如何观测、定位、分析并优化这些性能问题的。
- 套路篇,在理解了基础,亲身体验了模拟案例之后,我会帮你梳理出排查问题的整体思路,也就是检查性能问题的一般步骤,这样,以后你遇到问题,就可以按照这样的路子来。
- 答疑篇,我相信在学习完每一个模块之后,你都会有很多的问题,在答疑篇里,我会拿出提问频次较高的问题给你系统解答。
第 5 个综合实战模块,还原真实的工作场景,手把手带你在“高级战场”中演练,这样你能把前面学到的所有知识融会贯通,并且看完专栏,马上就能用在工作中。
想要得到你就要学会付出,要付出还要坚持;如果你真的觉得很难,那你就放弃,如果你放弃了就不要抱怨。人生就是这样,世界是平衡的,每个人都是通过自己的努力,去决定自己生活的样子。
性能指标是什么?
从应用负载的视角来考察性能,直接影响了产品终端的用户体验。
- 高并发 - 吞吐
- 响应快 - 延时
系统资源的视角出发的指标
- 资源使用率
- 饱和度
性能问题
我们知道,随着应用负载的增加,系统资源的使用也会升高,甚至达到极限。
而性能问题的本质,就是系统资源已经达到瓶颈,但请求的处理却还不够快,无法支撑更多的请求。
性能分析,其实就是找出应用或系统的瓶颈,并设法去避免或者缓解它们,从而更高效地利用系统资源处理更多的请求。
这包含了一系列的步骤,比如下面这六个步骤。
- 选择指标评估应用程序和系统的性能;
- 为应用程序和系统设置性能目标;
- 进行性能基准测试;
- 性能分析定位瓶颈;
- 优化系统和应用程序;
- 性能监控和告警。
性能工具
性能领域的大师布伦丹·格雷格(Brendan Gregg)。他不仅是动态追踪工具 DTrace 的作者,还开发了许许多多的性能工具。我相信你一定见过他所描绘的 Linux 性能工具图谱:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tHWhjpDC-1681825824360)(https://assets.b3logfile.com/siyuan/1658627274984/assets/image-20230418132223-3p2dlpg.png “性能工具图”)]
比如,当遇到 I/O 性能问题时,可以参考图片最下方的 I/O 子系统,使用 iostat、iotop、blktrace 等工具分析磁盘 I/O 的瓶颈。你可以把这个图保存下来,在需要的时候参考查询
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nP8GOZOb-1681825827912)(null)]
学习思路
- 有哪些指标可以衡量性能?
- 使用什么样的性能工具来观察指标?
- 导致这些指标变化的因素等。
- 边学边实践,通过大量的案例演习掌握 Linux 性能的分析和优化。
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK
-7MrAAYhg-1724348476394)]
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK