全链路压测其实指的就是在特定的业务场景下,将相关的链路完整的串联起来同时施压,
尽可能模拟出真实的用户行为,当系统整站流量都被打上来的时候,必定会暴露出性能
瓶颈,才能够探测出系统整体的真实处理能力,以及有指导的在大促前进行容量规划和
性能优化,这便是线上实施全链路压测的真正目的。
软件性能优化的两个基本原则
• 你不能优化一个没有测试的软件
• 你不能优化一个你不了解的软件
性能优化的一般方法
• 性能测试,获得性能指标
• 指标分析,发现性能与资源瓶颈点
• 架构与代码分析,寻找性能与资源瓶颈关键所在
• 架构与代码优化,优化关键技术点,平衡资源利用
• 性能测试,进入性能优化闭环
软件架构性能优化三板斧
• 缓存
• 异步
• 集群
缓存
- 从内存获取数据,减少响应时间
- 减少数据库访问,降低存储设备负载压力
- 缓存结果对象,而不是原始数据,减少 CPU 计算
- 缓存主要优化读操作
异步
- 即时响应,更好的用户体验
- 控制消费速度,合适的负载压力
- 异步主要优化写操作
集群
- 互联网技术的发展路径就是:更多的用户访问需要消耗更多的计算资源,单一服务器计
- 算资源的增加是有极限的,所以需要增加更多的服务器。关键是如何利用起来这些服务器。
- 集群的技术目标只有一个:如何使很多台服务器对使用者而言看起像一台服务器。
软件代码性能优化
- 遵循面向对象的设计原则与设计模式编程,很多时候程序性能不好不是因为性能上有什么技术挑战,仅仅就是因为代码太烂了。
- 并发编程,多线程与锁
- 资源复用,线程池与对象池
- 异步编程,生产者消费者
- 数据结构,数组、链表、hash 表、树