系统性能调优必知必会 / 深入底层直击性能问题本质

陶辉
智链达CTO、前阿里云高级技术专家
  • 课程目录
  • 课程介绍
  • 开篇词 | 万变不离其宗,性能优化也有章可循

    性能优化最根本的目的,还是要跟上业务的发展脚步。

  • 01 | CPU缓存:怎样写代码能够让CPU执行得更快?

    这一讲介绍如何通过提升CPU缓存的命中率来优化程序的性能。

  • 02 | 内存池:如何提升内存分配的效率?

    在多种编程语言共存的分布式系统中,内存池有很广泛的应用。

  • 03 | 索引:如何用哈希表管理亿级对象?

    哈希表的运行时间不随着业务规模增长而变化。

  • 04 | 零拷贝:如何高效地传输文件?

    磁盘是主机中最慢的硬件之一,常常是性能瓶颈,所以优化它能获得立竿见影的效果。

  • 05 | 协程:如何快速地实现高并发服务?

    这一讲介绍高并发解决方案的演进过程以及协程的应用。

  • 06 | 锁:如何根据业务场景选择合适的锁?

    互斥锁、自旋锁、读写锁等等,你了解多少?

  • 07 | 性能好,效率高的一对多通讯该如何实现?

    从这一讲开始,我们将从单机进入网络层面的性能优化。

  • 08 | 事件驱动:C10M是如何实现的?

    从这一讲开始我们回到主流的一对一通讯方式。

  • 09 | 如何提升TCP三次握手的性能?

    这一讲介绍TCP握手过程中各状态的意义,并以状态变化作为主线,看看如何调整Linux参数才能提升握手的性能。

  • 10 | 如何提升TCP四次挥手的性能?

    这节课介绍四次挥手关闭连接时如何优化性能。

  • 11 | 如何修改TCP缓冲区才能兼顾并发数量与传输速度?

    这一讲主要介绍内核缓冲区对传输速度的影响。

  • 12 | 如何调整TCP拥塞控制的性能?

    这一讲会沿着网络如何影响发送速度这条线,看看如何调整Linux下的拥塞控制参数。

  • 13 | 实战:单机如何实现管理百万主机的心跳服务?

    结合前12讲,以一个可管理百万主机集群的心跳服务作为实战案例,看所有高性能服务的设计思路。

  • 14 | 优化TLS/SSL性能该从何下手?

    从这一讲开始,我们进入应用层协议的处理。

  • 15 | 如何提升HTTP/1.1性能?

    在不升级协议的情况下,这节课会介绍3种优化思路。

  • 16 | HTTP/2是怎样提升性能的?

    这一讲介绍HTTP/2对HTTP/1.1协议都做了哪些改进,从消息的编码、传输等角度说清楚性能提升点。

  • 17 | Protobuf是如何进一步提高编码效率的?

    这一讲重点介绍Protobuf的编码原理。

  • 18 | 如何通过gRPC实现高效远程过程调用?

    这一讲以一个实战案例,基于前两讲提到的HTTP/2和ProtoBuf协议,看gRPC如何将结构化消息编码为网络报文。

  • 期中考试|行至半程,你的收获如何呢?

    来挑战一下吧!

  • 加餐1|特别福利:陶辉视频课精选

    来自《Web协议详解与抓包实战》

  • 加餐2 |答疑精选:这些问题你都清楚吗?

    希望你能从别人的疑问中进行一次自检,引发更多的思考。

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

    这一讲介绍两个简单而又行之有效的监控方案。

  • 20 | CAP理论:怎样舍弃一致性去换取性能?

    这一讲基于分布式系统中的经典理论,从总体上看如何设计一致性模型,通过牺牲部分数据的一致性来提升性能。

  • 21 | AKF立方体:怎样通过可扩展性来提高性能?

    这一讲扩大范围,结合无状态服务,看看怎样提高分布式系统的整体性能。

  • 22 | NWR算法:如何修改读写模型以提升性能?

    这一讲介绍NWR算法的原理,包括它是怎样调整读写模型来提升性能的,以及Cassandra数据库是如何使用NWR算法的。

  • 23 | 负载均衡:选择Nginx还是OpenResty?

    这一讲以Nginx以及建立了Lua语言生态的OpenResty为例,看看负载均衡是怎样扩展系统的。

  • 24 | 一致性哈希:如何高效地均衡负载?

    这一讲介绍一致性哈希算法的工作原理,以及如何通过虚拟节点提升算法的均衡性。

  • 25 | 过期缓存:如何防止缓存被流量打穿?

    这一讲系统地介绍缓存及其数据变更策略,同时会以Nginx为例介绍过期缓存的用法。

  • 26 | 应用层多播:如何快速地分发内容?

    这一讲从应用层介绍如何实现多播功能。

  • 27 | 消息队列:如何基于异步消息提升性能?

    这一讲介绍如何在分布式系统中使用消息队列,以及高可用性又是如何保证的。

  • 28 | MapReduce:如何通过集群实现离线计算?

    这一讲介绍如何在分布式集群中实现离线计算,以及MapReduce是怎样提供SQL语言接口的。

  • 29 | 流式计算:如何通过集群实现实时计算?

    这一讲介绍流式计算的工作原理,以及流式计算常用的数据分片窗口。

  • 30 | 如何权衡关系数据库与NoSQL数据库?

    这一讲从关系数据库的特性出发,看看NoSQL数据库究竟做了哪些改变,以及如何选择。

  • 加餐3 | 大厂面试到底在考些什么?

    这节课会兼顾面试官与候选人两个视角,分享如何拿下一线大厂的技术面试。

  • 大咖助场1 | 李玥:高并发场景下如何优化微服务的性能?

    这节课会把“基础设施优化”这一部分中讲到的一些抽象的概念和方法,用举例子的方式来梳理一遍。

  • 大咖助场2|庄振运:与程序员相关的SSD性能知识

    近年SSD的发展和演化非常迅速,了解它的机制和性能,对你的工作会很有益处。

  • 加餐4|百万并发下Nginx的优化之道

    本文源自公众号高效运维,根据陶辉老师在GOPS 2018 · 上海站分享整理而成。

  • 大咖助场3|傅健:那些年,影响我们达到性能巅峰的常见绊脚石(上)

    这期分享会结合具体场景总结应对策略。

  • 大咖助场4|傅健:那些年,影响我们达到性能巅峰的常见绊脚石(下)

    这期分享会结合具体场景总结应对策略。

  • 加餐5 | 如何理解分布式系统?

    希望你在学习分布式系统的时候,不要因追逐“术”而丢了“道”。

  • 加餐6|分布式系统的本质是什么?

    这期分享主要介绍分治和冗余。

  • 加餐7|深入剖析HTTP/3协议

    这节课主要介绍HTTP/3协议规范、应用场景及实现原理。

  • 结束语 | 从业 IT 20年后,我将最看重什么?

    最后一课,希望你拥有优秀的结网能力和表达能力!

  • 来领奖啦!你填写毕业问卷了吗?

    有奖征集最后1天!

  • 毕业问卷获奖用户名单

    每一个声音都值得倾听,感谢你们,与我们共创内容!

  • 期末测试|对于性能优化,你掌握了多少呢?

    满分?多选20道

你将获得

  • 以性能为核心的后端技能图谱;
  • 系统化性能调优策略;
  • 分布式系统调优最佳路径;
  • 一线大厂性能面试题解析。

讲师介绍

陶辉,杭州智链达数据有限公司 CTO 兼联合创始人,前阿里云高级技术专家,腾讯云TVP,著有《深入理解 Nginx:模块开发与架构解析》一书。

陶辉曾任职于阿里巴巴、华为、腾讯、思科等知名企业,有近20年互联网一线工作经验,目前致力于 Linux 下高性能服务器的开发,以及分布式环境下海量数据存储的设计工作。

另外,陶辉也是极客时间视频课程《Nginx核心知识100讲》《Web协议详解与抓包实战》的作者。

课程介绍

随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课。从产品角度来看,性能就是“攻城略地”的最佳武器,我们期待能更苛刻地使用计算机和网络设备,去做性价比更高的事儿;而对程序员个人而言,具备系统的性能优化方法论,无论在架构设计还是应用模块开发上我们都能得心应手,还能轻松应对大厂面试、技术等级晋升考核等等。

当下业务发展速度极快且复杂,后端几乎都是分布式系统,“如何全面提升复杂集群的性能”无疑成为了最新课题。但如果你有意关注过这方面的信息,就会发现这部分资料市面上其实少之又少。

本课程将结合陶辉老师近20年的从业经验,为你归纳总结分布式性能领域所遇到的问题和解决方案,梳理出一条系统化的性能学习路径交付给你。在陶辉看来,解决性能问题并不难,关键在于抓住问题的本质,而最终要落地的就是最大化整个系统的综合效率。

具体内容上,分为4个层次,从基础设施、网络、编解码到分布式系统性能整体提升。

基础设施优化:从提升单机进程的性能入手,包括高效地使用主机的CPU、内存、磁盘等硬件,通过并发编程提升吞吐量,根据业务特性选择合适的算法。

系统层网络优化:分布式系统是由各个组件通过网络连接在一起的,所以优化传输层网络可以让所有组件同时受益。具体优化时,会从降低请求的时延、提升总体吞吐量两个方向入手。

应用层编解码优化:会对业务消息采用更高效的编码方式,这既包括协议头、包体的优化,也包括TLS安全层的性能提升。具体优化时,既会深入静态编码,也会从动态的增量编码上优化。另外,也会格外关注消息的交互方式。

分布式系统优化:会从集群整体上进行架构层面的优化。基于ACP、AKF、NWR等分布式理论,优化方向仍然是降低时延和提升吞吐量,但实现方式则会运用分而治之的思想,调度集群中的所有结点协作配合,完成性能优化目标。

课程目录

适合人群

非零基础课程,面向有2年以上工作经验的后端开发,适合有意愿深入了解“整体提升分布式系统性能”的软件工程师、架构师。要求熟悉最基本的硬件配置,对系统的某个模块有一定接触。

特别放送

订阅须知