Linux性能优化实战
倪朋飞
微软资深工程师,Kubernetes项目维护者
立即订阅
23395 人已学习
课程目录
已完结 64 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (2讲)
开篇词 | 别再让Linux性能问题成为你的绊脚石
免费
01 | 如何学习Linux性能优化?
CPU 性能篇 (13讲)
02 | 基础篇:到底应该怎么理解“平均负载”?
03 | 基础篇:经常说的 CPU 上下文切换是什么意思?(上)
04 | 基础篇:经常说的 CPU 上下文切换是什么意思?(下)
05 | 基础篇:某个应用的CPU使用率居然达到100%,我该怎么办?
06 | 案例篇:系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用?
07 | 案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(上)
08 | 案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(下)
09 | 基础篇:怎么理解Linux软中断?
10 | 案例篇:系统的软中断CPU使用率升高,我该怎么办?
11 | 套路篇:如何迅速分析出系统CPU的瓶颈在哪里?
12 | 套路篇:CPU 性能优化的几个思路
13 | 答疑(一):无法模拟出 RES 中断的问题,怎么办?
14 | 答疑(二):如何用perf工具分析Java程序?
内存性能篇 (8讲)
15 | 基础篇:Linux内存是怎么工作的?
16 | 基础篇:怎么理解内存中的Buffer和Cache?
17 | 案例篇:如何利用系统缓存优化程序的运行效率?
18 | 案例篇:内存泄漏了,我该如何定位和处理?
19 | 案例篇:为什么系统的Swap变高了(上)
20 | 案例篇:为什么系统的Swap变高了?(下)
21 | 套路篇:如何“快准狠”找到系统内存的问题?
22 | 答疑(三):文件系统与磁盘的区别是什么?
I/O 性能篇 (10讲)
23 | 基础篇:Linux 文件系统是怎么工作的?
24 | 基础篇:Linux 磁盘I/O是怎么工作的(上)
25 | 基础篇:Linux 磁盘I/O是怎么工作的(下)
26 | 案例篇:如何找出狂打日志的“内鬼”?
27 | 案例篇:为什么我的磁盘I/O延迟很高?
28 | 案例篇:一个SQL查询要15秒,这是怎么回事?
29 | 案例篇:Redis响应严重延迟,如何解决?
30 | 套路篇:如何迅速分析出系统I/O的瓶颈在哪里?
31 | 套路篇:磁盘 I/O 性能优化的几个思路
32 | 答疑(四):阻塞、非阻塞 I/O 与同步、异步 I/O 的区别和联系
网络性能篇 (13讲)
33 | 关于 Linux 网络,你必须知道这些(上)
34 | 关于 Linux 网络,你必须知道这些(下)
35 | 基础篇:C10K 和 C1000K 回顾
36 | 套路篇:怎么评估系统的网络性能?
37 | 案例篇:DNS 解析时快时慢,我该怎么办?
38 | 案例篇:怎么使用 tcpdump 和 Wireshark 分析网络流量?
39 | 案例篇:怎么缓解 DDoS 攻击带来的性能下降问题?
40 | 案例篇:网络请求延迟变大了,我该怎么办?
41 | 案例篇:如何优化 NAT 性能?(上)
42 | 案例篇:如何优化 NAT 性能?(下)
43 | 套路篇:网络性能优化的几个思路(上)
44 | 套路篇:网络性能优化的几个思路(下)
45 | 答疑(五):网络收发过程中,缓冲区位置在哪里?
综合实战篇 (13讲)
46 | 案例篇:为什么应用容器化后,启动慢了很多?
47 | 案例篇:服务器总是时不时丢包,我该怎么办?(上)
48 | 案例篇:服务器总是时不时丢包,我该怎么办?(下)
49 | 案例篇:内核线程 CPU 利用率太高,我该怎么办?
50 | 案例篇:动态追踪怎么用?(上)
51 | 案例篇:动态追踪怎么用?(下)
52 | 案例篇:服务吞吐量下降很厉害,怎么分析?
53 | 套路篇:系统监控的综合思路
54 | 套路篇:应用监控的一般思路
55 | 套路篇:分析性能问题的一般步骤
56 | 套路篇:优化性能问题的一般方法
57 | 套路篇:Linux 性能工具速查
58 | 答疑(六):容器冷启动如何性能分析?
加餐篇 (4讲)
加餐(一) | 书单推荐:性能优化和Linux 系统原理
加餐(二) | 书单推荐:网络原理和 Linux 内核实现
用户故事 | “半路出家 ”,也要顺利拿下性能优化!
用户故事 | 运维和开发工程师们怎么说?
结束语 (1讲)
结束语 | 愿你攻克性能难关
Linux性能优化实战
登录|注册

53 | 套路篇:系统监控的综合思路

倪朋飞 2019-03-29
你好,我是倪朋飞。
在前面的内容中,我为你介绍了很多性能分析的原理、思路以及相关的工具。不过,在实际的性能分析中,一个很常见的现象是,明明发生了性能瓶颈,但当你登录到服务器中想要排查的时候,却发现瓶颈已经消失了。或者说,性能问题总是时不时地发生,但却很难找出发生规律,也很难重现。
当面对这样的场景时,你可能会发现,我们前面介绍的各种工具、方法都“失效“了。为什么呢?因为它们都需要在性能问题发生的时刻才有效,而在这些事后分析的场景中,我们就很难发挥它们的威力了。
那该怎么办呢?置之不理吗?其实以往,很多应用都是等到用户抱怨响应慢了,或者系统崩溃了后,才发现系统或者应用程序的性能出现了问题。虽然最终也能发现问题,但显然,这种方法是不可取的,因为严重影响了用户的体验。
而要解决这个问题,就要搭建监控系统,把系统和应用程序的运行状况监控起来,并定义一系列的策略,在发生问题时第一时间告警通知。一个好的监控系统,不仅可以实时暴露系统的各种问题,更可以根据这些监控到的状态,自动分析和定位大致的瓶颈来源,从而更精确地把问题汇报给相关团队处理。
要做好监控,最核心的就是全面的、可量化的指标,这包括系统和应用两个方面。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Linux性能优化实战》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(20)

  • Adam
    除了USE原则,还有一个RED原则 。

    作者回复: 嗯嗯,RED方法更偏重于应用,在很多微服务中会用到。

    Rate (R): The number of requests per second.
    Errors (E): The number of failed requests.
    Duration (D): The amount of time to process a request.

    2019-03-31
    6
  • ninuxer
    打卡day57
    最近刚好在利用cadvisor+promethues+grafana对运行容器进行资源监控,现在是用grafana基于图形的告警,对promethues的查询语言还在摸索中~
    2019-03-29
    4
  • 朱林浩
    如何查看内存饱和度,即内存换页量?

    作者回复: 可以使用 sar -B

    2019-04-29
    1
  • 胡鹏
    我目前的水平是,看到接口慢了,说明存在性能瓶颈了,😂,还得继续努力
    2019-03-30
    1
  • 霹雳旸神
    公司交易系统监控还停留在hostmonitor来配置监控的阶段,各产品基本思想都差不多,老师这样一梳理脑子更清晰了,目前自己正在研究如何把交易系统容器化,等把百来套交易系统的集群搞起来后,再把老师推荐的监控方案亲自实践一遍,应该会学的更深刻

    作者回复: 👍

    2019-03-30
    1
  • Adam
    打卡,线上用prometheus+grafana监控k8s资源。prometheus够强大。
    2019-03-29
    1
  • 杨国宇
    老师好,如果基于docker来实现监控系统的部署,docker对系统的资源消耗会影响到性能吗?
    2019-10-24
  • slam
    虚拟机或容器,也能监控吗

    作者回复: 当然可以的

    2019-08-04
  • 陈云卿
    对于业务数据的监控,老师有什么推荐的工具吗?尽量不入侵代码
    2019-06-22
  • 如果
    DAY53,打卡
    2019-04-23
  • Wing
    用什么命令可以得到这个 网络: 带宽使用率,重传报文数, 网卡收发错误数,丢包数。

    作者回复: sar、netstat

    2019-04-15
  • lerry
    我们是用zabbix来监控服务器的,最近有台虚拟机应用服务器,经常挂了,无法连接上,从vcenter后台也无法连上,每次只能强制关闭启动服务器,找了很久原因都没找到,查看zabbix挂了之前的资源使用情况,同样没发现问题,对于这种情况,还请老师给点思路啊,谢谢!

    作者回复: 重启的话,系统日志里面一般会有线索的,可以重启后查看系统日志(当然这些日志最好也是收集起来几种监控)

    2019-04-01
    1
  • zg
    可以移植到ARM嵌入式Linux系统吗?

    作者回复: 要看监控工具是不是支持ARM,比如Prometheus提供了ARM版本

    2019-03-31
  • 倪老师,您好,通过您的课程受益匪浅。最近我刚好在生产中遇到了个问题,k8s环境下,因为某个cgroup超出限制,系统不停的重启pod,最后引发系统crash。我们收集到了core dump文件,确定了最后是触发了linux的Bug导致系统crash;系统不停的重启pod,应该是内存泄露导致,引发了oom;通过coredump文件,我找到了一堆java线程,应该是这个所致,但是在分析过程中的一些指标还不是很清楚,希望能够得到指导;如果您方便的话,可以加我微信18910659557,非常期待您的答复

    作者回复: 哪些指标不清楚在这里说一下?有疑问发到留言里面,其他同学也可以一起参与讨论

    2019-03-31
  • 我来也
    [D53打卡]
    划个水.😁

    这个系统监控 与 云服务平台提供的有哪些差异,适用什么样的场景呢?

    作者回复: 云平台一般都会提供一些基本的指标监控,但很可能不够细致

    2019-03-30
  • code2
    见过上海超算中心的超级计算机系统性能监控系统,主要监控CPU的使用情况,可以预留部分CPU给重要任务,也是基于linux的操作系统,监控结果图形化显示与一个大屏幕上。

    作者回复: 👍

    2019-03-30
  • 遇到的监控问题:有时候单个性能瓶颈往往引起一连串问题,比如swap使用,导致请求响应慢,请求堆积,线程增多,文件句柄数升高,cpu瞬间升高。归因分析比较困难。最后就变成重启大法好

    作者回复: 嗯,这就需要熟悉这些基本的原理,结合原理是所有性能分析的基础

    2019-03-29
  • Maxwell
    文件描述符数,连接数,连接跟踪数这些指标监控系统如何监控呢?

    作者回复: 监控系统一般从proc和sys文件系统中读取

    2019-03-29
  • Maxwell
    怎么理解上面哪些性能指标的错误数呢?cpu错误数什么情况下出现,内存分配错误等
    2019-03-29
  • 星辰
    刚好在做系统模版监控 有这个思路 框架就有了
    2019-03-29
收起评论
20
返回
顶部