系统性能调优必知必会
陶辉
智链达CTO、前阿里云高级技术专家
立即订阅
5381 人已学习
课程目录
已更新 40 讲 / 共 43 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 万变不离其宗,性能优化也有章可循
免费
基础设施优化 (6讲)
01 | CPU缓存:怎样写代码能够让CPU执行得更快?
02 | 内存池:如何提升内存分配的效率?
03 | 索引:如何用哈希表管理亿级对象?
04 | 零拷贝:如何高效地传输文件?
05 | 协程:如何快速地实现高并发服务?
06 | 锁:如何根据业务场景选择合适的锁?
系统层网络优化 (7讲)
07 | 性能好,效率高的一对多通讯该如何实现?
08 | 事件驱动:C10M是如何实现的?
09 | 如何提升TCP三次握手的性能?
10 | 如何提升TCP四次挥手的性能?
11 | 如何修改TCP缓冲区才能兼顾并发数量与传输速度?
12 | 如何调整TCP拥塞控制的性能?
13 | 实战:单机如何实现管理百万主机的心跳服务?
应用层编解码优化 (6讲)
14 | 优化TLS/SSL性能该从何下手?
15 | 如何提升HTTP/1.1性能?
16 | HTTP/2是怎样提升性能的?
17 | Protobuf是如何进一步提高编码效率的?
18 | 如何通过gRPC实现高效远程过程调用?
特别放送 | 大厂面试到底在考些什么?
期中考试周 (3讲)
期中考试|行至半程,你的收获如何呢?
加餐1|特别福利:陶辉视频课精选
加餐2 |答疑精选:这些问题你都清楚吗?
分布式系统优化 (17讲)
19 | 如何通过监控找到性能瓶颈?
20 | CAP理论:怎样舍弃一致性去换取性能?
21 | AKF立方体:怎样通过可扩展性来提高性能?
大咖助场 | 李玥:高并发场景下如何优化微服务的性能?
22 | NWR算法:如何修改读写模型以提升性能?
23 | 负载均衡:选择Nginx还是OpenResty?
大咖助场|庄振运:与程序员相关的SSD性能知识
24 | 一致性哈希:如何高效地均衡负载?
25 | 过期缓存:如何防止缓存被流量打穿?
加餐3|百万并发下Nginx的优化之道
26 | 应用层多播:如何快速地分发内容?
27 | 消息队列:如何基于异步消息提升性能?
大咖助场|傅健:那些年,影响我们达到性能巅峰的常见绊脚石(上)
大咖助场|傅健:那些年,影响我们达到性能巅峰的常见绊脚石(下)
28 | MapReduce:如何通过集群实现离线计算?
29 | 流式计算:如何通过集群实现实时计算?
加餐4 | 如何理解分布式系统?
系统性能调优必知必会
15
15
1.0x
00:00/00:00
登录|注册

19 | 如何通过监控找到性能瓶颈?

陶辉 2020-06-19
你好,我是陶辉。
从这一讲开始,我们将进入分布式系统层面,站在更宏观的角度去探讨系统性能的优化。
如果优化系统性能时,只是依据自己的经验,对感觉存在性能提升空间的代码,无一例外地做一遍优化,这既是一件事倍功半的事,也很容易遗漏下关键的优化点,无法大幅提升系统的性能。根据帕累托法则(也叫二八定律),只有优化处于性能瓶颈的那些少量代码,才能用最小的成本获得最大的收益。
然而,找到性能瓶颈却不是一件容易的事。我们通常会采用各种监控手段来发现性能瓶颈,但如果监控动作自身的开发成本过高,或者施行监控时显著降低了业务请求的性能,或者无法全面覆盖潜在的问题,都会影响性能优化目标的实现。
这一讲,我将介绍 2 个简单而又行之有效的方案,分别从微观上快速地找出进程内的瓶颈函数,以及从宏观上找出整个分布式系统中的瓶颈组件。这样,我们就可以事半功倍地去优化系统性能。

单机:如何通过火焰图找到性能瓶颈?

对于工作在一台主机上的进程而言,有许多监控方案可用于寻找性能瓶颈。比如在 Linux 下,你可以通过 iostat 命令监控磁盘状态,也可以通过 top 命令监控 CPU、内存的使用。这些方案都是在旁敲侧击着寻找性能瓶颈,然而,有一种最直接有效的方式,就是从代码层面直接寻找调用次数最频繁、耗时最长的函数,通常它就是性能瓶颈。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《系统性能调优必知必会》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(6)

  • 槑·先生
    arthas这个工具能更方便地生成火焰图,大家可以试试。
    2020-06-23
    1
    2
  • Kyushu
    很有启发,之前一直知道有这么个东西就是没去用
    2020-07-02
  • 黄骏
    火焰图确实很直观,分布式系统的性能分析这个领域有哪些比较经典的论文或者开源项目吗?
    2020-07-02
  • 小喵喵
    老师,您列举的例子分析都是一些正规的系统,如果是一个垃圾系统,比如非分布式系统,程序猿连日志都没有写,都是直接连接数据库的,一个方法里面有的有上万行代码,压根儿就无法修改。系统性能问题一堆,针对这样的垃圾系统如何做性能监控呢?
    2020-06-29
  • 许童童
    学习了,了解到了更多火焰图的使用技巧,原来还有on cpu和off cpu的,使用的时候看耗时最长的不是光看长度就可以了,而是用自身的长度减去子函数调用的长度,结果宽度较长的话就是耗时很长。
    2020-06-19
  • Geek_1386e9
    打卡,火焰图真是个机器,太好用啦
    2020-06-19
收起评论
6
返回
顶部