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

99 极客时间
去极客时间学习

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

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

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

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

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

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

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

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

  • 《系统性能调优必知必会》课程大纲
  • 2 
    开篇词万变不离其宗,性能优化也有章可循
  • 3 
    基础设施优化
  • 4 
    01CPU缓存:怎样写代码能够让CPU执行得更快?
  • 5 
    02内存池:如何提升内存分配的效率?
  • 6 
    03索引:如何用哈希表管理亿级对象?
  • 7 
    04零拷贝:如何高效地传输文件?
  • 8 
    05协程:如何快速地实现高并发服务?
  • 9 
    06锁:如何根据业务场景选择合适的锁?
  • 10 
    系统层网络优化
  • 11 
    07性能好,效率高的一对多通讯该如何实现?
  • 12 
    08事件驱动:C10M是如何实现的?
  • 13 
    09如何提升TCP三次握手的性能?
  • 14 
    10如何提升TCP四次挥手的性能?
  • 15 
    11如何修改TCP缓冲区才能兼顾并发数量与传输速度?
  • 16 
    12如何调整TCP拥塞控制的性能?
  • 17 
    13实战:单机如何实现管理百万主机的心跳服务?
  • 18 
    应用层编解码优化
  • 19 
    14优化TLS/SSL性能该从何下手?
  • 20 
    15如何提升HTTP/1.1性能?
  • 21 
    16Http/2是怎样提升性能的?
  • 22 
    17Protobuf 是如何进一步提高编码效率的?
  • 23 
    8如何通过gRPC实现高效过程调用?
  • 24 
    特别放送一线大厂面试题实战解析
  • 25 
    分布式系统优化
  • 26 
    19如何通过监控找到性能瓶颈?
  • 27 
    20ACp理论:怎样舍弃一致性去换取性能?
  • 28 
    21AKF立方体:怎样通过可扩展性来提高性能?
  • 29 
    22NW理论:如何修改读写模型以提升性能?
  • 30 
    23负载均衡:选择Nginx 还是OpenResty ?
  • 31 
    24致性哈希:如何基于用户请求扩展集群?
  • 32 
    25过期缓存:如何防止缓存被流量打穿?
  • 33 
    26应用层多播:如何快速地分发内容?
  • 34 
    27如何基于异步消息提升性能?
  • 35 
    28MapReduce :如何通过集群实现离线计算?
  • 36 
    29流式计算:如何通过集群实现实时计算?
  • 37 
    30如何权衡关系数据库与NOSQL 数据库?
  • 38 
    ■期末测试对于性能优化,你掌握了多少呢?
  • 39 
    结束语从业T20年后,我将最看重什么
广告一下
热门教程
PHP7报A non well formed numeric value encountered 0
Linux系统下关闭mongodb的几种命令分享 0
mongodb删除数据、删除集合、删除数据库的命令 0
Git&Github极速入门与攻坚实战课程 0
python爬虫教程使用Django和scrapy实现 0
libnetsnmpmibs.so.31: cannot open shared object file 0
数据结构和算法视频教程 0
redis的hash结构怎么删除数据呢? 0
C++和LUA解析器的数据交互实战视频 0
mongodb errmsg" : "too many users are authenticated 0
C++基础入门视频教程 0
用30个小时精通C++视频教程可能吗? 0
C++分布式多线程游戏服务器开发视频教程socket tcp boost库 0
C++培训教程就业班教程 0
layui的util工具格式时间戳为字符串 0
C++实战教程之远程桌面远程控制实战 1
网络安全培训视频教程 0
LINUX_C++软件工程师视频教程高级项目实战 0
C++高级数据结构与算法视频教程 0
跨域问题很头疼?通过配置nginx轻松解决ajax跨域问题 0
相关文章
【译】JavaScript数据结构(3):单向链表与双向链表 16
10个JavaScript难点 16
【译】苹果拒绝支持PWA,有损Web的未来 16
iView 一周年了,同时发布了 2.0 正式版,但这只是开始... 16
nodejs+mongodb构建一个简单登录注册功能 16
【译】JavaScript数据结构(4):树 16
组件化开发与黑箱 16
TypeScript - 不止稳,而且快 16
webpack3+anujs+ReactCSSTransitionGroup 16
原生js实现图片放大镜效果 16
WEB缓存探究第二弹——实战 16
纯笔记:vfork 的一些使用场景(顺便讲一下 fork 的原理) 16
Android APP 内部捐赠实现(支付宝&微信) 16
WKWebView 的一些小总结 16
模型评价(一) AUC大法 16
开始使用GraphQL 16
Webpack模块化原理简析 16
gulp使用问题记录 16
使用Angular4动画为页面添彩 16
Python27 Matplotlib (win64 python2.7) 安装及简单使用 16