【第七周】学习总结——性能测试和优化
性能测试
性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下的网站性能有不同的标准,也有不同的优化手段。
主观视角:主观感受的性能
客观视角:客观指标衡量的性能
性能测试指标
响应时间:完成一次任务所需时间
并发数:同时处理的任务数
吞吐量:单位时间完成的任务数
性能计数器:System Load,线程数,CPU、内存、磁盘、网络使用率(也是系统监控的重要指标项)
TPS(每秒事务数)
QPS(每秒请求数)
吞吐量=(1000/响应时间ms)*并发数
性能测试方法
性能测试:以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统资源在预期指标内,是否能达到性能预期。
负载测试:对系统不断的增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如果某种资源已经呈饱和状态,这时候继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。
压力测试:超过安全负载的情况下,继续对系统施压,直到系统奔溃或者不能再处理任何请求,以此获得系统的最大承受能力。
稳定性测试:在长时间的性能测试压力下,系统是否能稳定运行。在生产环境,请求压力是不均匀的,呈波浪性的,为了更好的模拟生产环境,稳定性测试也要不均衡的对系统施压。
(示意图,真实场景bc段会更加平缓,cd段会更加陡)
性能优化
性能测试两个基本原则
你不能优化一个没有测试的软件
你不能优化一个你不了解的软件
性能优化的一般方法
性能测试,获得性能指标
指标分析,获得性能与资源瓶颈点
架构与代码分析,寻找性能与资源瓶颈的关键所在
架构与代码优化,优化关键技术点,平衡资源利用
性能测试,进入性能优化闭环
系统优化的分层思想
机房与骨干网络性能优化:异地多活,专线网络,自主CDN
服务器与硬件性能优化:垂直伸缩,更好的服务器,更好的CPU、硬盘、网卡,有时远远超过软件和架构的优化效果
操作系统性能优化:配置优化
虚拟机性能优化:阿里云,196G内存,FULLGC,4分钟的StopTheWorld,系统等于崩溃
基础组件性能优化:组件类型更换,版本更换
软件架构性能优化:缓存(读)、异步(写)、集群
软件代码性能优化:并发编程、资源复用、异步编程、数据结构
(以上只是部分常识,并不能解决所有问题)
学习小结
性能测试和优化必须掌握方法,不能盲目进行。
评论