第七周学习心得
1 性能测试
性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下
的网站性能有不同的标准,也有不同的优化手段。
1.1 性能测试主要指标
响应时间
应用系统从发出请求开始到收到最后响应数据所需要的时间,直接反应系统的『快慢』。
主管上的性能优化,可以在从开始到结束中间的时间点上做优化。比如在开始之后马上给用户反馈而不是等到结束后;
并发数
系统能够同时处理请求的数量,反应系统的负载特性
对网站而言,同时提交请求的用户数(并发用户数)当前登录系统的用户数(在线用户数),可访问系统的总用户数(系统用户数)
吞吐量
单位时间内系统处理请求的数量,体现系统的处理能力
对网站而言,可以使用『请求数/秒』或『页面数/秒』来衡量,也可以使用『访问人数/ 天』,『处理业务数/小时』来衡量
指标
TPS(每秒事务数)
HPS(每秒 HTTP 请求数)
QPS(每秒查询数)
性能计数器
是描述服务器或操作系统性能的一些数据指标。包括 System Load、对象与线程数、内存使用、CPU 使用、磁盘与网络 I/O 等指标。这些指标也是系统监控的重要参数,对这些指标设置报警阀值,当监控系统发现性能计数器超过阀值的时候,就向运维和开发人员报警,及时发现处理系统异常。
1.2 性能测试方法
性能测试:以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统的资源可接受的范围内,是否能达到性能预期。
负载测试:对系统机型施加压力,直到系统的某项或多项性能达到安全临界值,当压力达到临界值,系统处理能力开始下降。
压力测试:在超过安全负载的情况下,继续施加压力,直到系统崩溃不能处理请求,以获得系统的最大承受能力。
2 性能优化
2.1 性能优化的两个基本原则
你不能优化一个没有测试的软件
没有测试就没有数据,没有数据说明系统有性能问题
不能只为了应用新技术就开始性能优化
你不能优化一个你不了解的软件
2.2 性能优化的一般方法
性能测试,获取性能指标
指标分析,获取性能与资源瓶颈点
架构与代码分析,寻找性能与资源瓶颈的关键所在
架构与代码优化,优化关键技术点,平衡资源利用
性能测试,进入性能优化闭环
2.3 系统性能优化的分层思想
机房与骨干网络性能优化
异地多活的多机房架构,用户访问就近的机房
专线网络与自主 CDN 建设
服务器与硬件
操作系统
虚拟机
基础组件
软件架构
软件代码性能
遵循面向对象的设计原则和设计模式编程,代码质量要有保证
并发编程,多线程与锁
资源复用,线程池与对象池
异步编程,生产者与消费者
数据结构,数组,链表,hash 表,树
2.4 软件架构性能优化
2.4.1 缓存
从内存获取数据,减少响应时间
减少数据库访问,降低存储设备负载压力
缓存结果对象,而不是原始数据,减少 CPU 计算
缓存主要优化读操作,对热点数据的读操作
2.4.2 异步
即时响应,更好的用户体验
控制消费速度,合适的负载压力
异步主要优化写操作
2.4.3 集群
横向扩展,前提是系统架构要支持
要满足扩展性的要求,新增减少节点的时候不能影响系统运行
评论