【第七周】学习总结——性能测试和优化

发布于: 14 小时前

性能测试

性能测试是性能优化前提和基础,也是性能优化结果检查和度量标准。不同视角下的网站性能有不同的标准,也有不同的优化手段。

主观视角:主观感受的性能

客观视角:客观指标衡量的性能

性能测试指标

响应时间:完成一次任务所需时间

并发数:同时处理的任务数

吞吐量:单位时间完成的任务数

性能计数器:System Load,线程数,CPU、内存、磁盘、网络使用率(也是系统监控的重要指标项)

TPS(每秒事务数)

QPS(每秒请求数)

吞吐量=(1000/响应时间ms)*并发数

性能测试方法

性能测试:以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统资源在预期指标内,是否能达到性能预期。

负载测试:对系统不断的增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如果某种资源已经呈饱和状态,这时候继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。

压力测试:超过安全负载的情况下,继续对系统施压,直到系统奔溃或者不能再处理任何请求,以此获得系统的最大承受能力。

稳定性测试:在长时间的性能测试压力下,系统是否能稳定运行。在生产环境,请求压力是不均匀的,呈波浪性的,为了更好的模拟生产环境,稳定性测试也要不均衡的对系统施压。

(示意图,真实场景bc段会更加平缓,cd段会更加陡)

性能优化

性能测试两个基本原则

  • 你不能优化一个没有测试的软件

  • 你不能优化一个你不了解的软件

性能优化的一般方法

  • 性能测试,获得性能指标

  • 指标分析,获得性能与资源瓶颈点

  • 架构与代码分析,寻找性能与资源瓶颈的关键所在

  • 架构与代码优化,优化关键技术点,平衡资源利用

  • 性能测试,进入性能优化闭环

系统优化的分层思想

机房与骨干网络性能优化:异地多活,专线网络,自主CDN

服务器与硬件性能优化:垂直伸缩,更好的服务器,更好的CPU、硬盘、网卡,有时远远超过软件和架构的优化效果

操作系统性能优化:配置优化

虚拟机性能优化:阿里云,196G内存,FULLGC,4分钟的StopTheWorld,系统等于崩溃

基础组件性能优化:组件类型更换,版本更换

软件架构性能优化:缓存(读)、异步(写)、集群

软件代码性能优化:并发编程、资源复用、异步编程、数据结构

(以上只是部分常识,并不能解决所有问题)

学习小结

性能测试和优化必须掌握方法,不能盲目进行。

用户头像

三尾鱼

关注

还未添加个人签名 2018.07.10 加入

还未添加个人简介

评论

发布
暂无评论
【第七周】学习总结——性能测试和优化