性能测试
1 解决了什么问题?(性能是个啥?性能测试干了啥?)
1.1 系统性能
这个手机好流畅,这个网站一点也不卡
手机好卡啊,网站反映怎么这么慢
每到晚上就卡的不行
性能好?:
用户体验好
性能指标好
1.2 为什么要进行性能测试(什么是性能测试)
验证系统在给定资源下是否满足处理能力预期(是否满足当前需求)
分阶段测试现有资源下系统处理能力(测试出系统瓶颈点和性能拐点)
性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。
2 测试结束,怎么评估性能?
2.1 响应时间
处理速度。
指应用系统从发出请求开始到收到最后响应数据所需要的时间。响应时间是系统最重要的性能指标,直观的反映了系统的“快慢”。
2.2 并发数
系统能够同时处理的请求数。所有请求。
系统能够同时处理请求的数目,这个数字也反映了系统的负载特性。对于网站而言,并发数即系统并发用户数,指同时提交请求的用户数目,于此相对应,还有在线用户数(当前登录系统的用户数)和系统用户数(可能访问系统的总用户数)。
2.3 吞吐量
单位时间内,系统处理的请求数量。指定时间单位内,系统处理请求的并发数。
指单位时间内系统处理的请求的数量,体现件系统的处理能力。对于网站,可以用“请求数秒”或是“页面数秒”来衡量,也可以用“访问人数/天”或是“处理的业务数小时”等来衡量。
TPS(毎秒事务并发数)也是吞吐量的一个指标,此外还有HPS(每秒ITP请求数) QPS(每秒查询并发数)等。
吞吐量 = (1000/响应时间 ms)* 并发数
2.4 性能计数器
给定基础设施,其有处理能力上限,吞吐量、响应时间、并发数都受其限制。
描述服务器或操作系统性能的一些数据指标。包括 System Load、对象与线程数、内存使用、CPU使用、磁盘与网络O等指标。这些指标也是系统监控的重要参数,对这些指标设置报警阀值,当监控系统发现性能计数器超过阀值的时候,就向维和开发人员报警,及时发现处理系统异常。
System Load: top 命令 Load Avg
3 梯度测试(分阶段测试、怎么进行性能测试、性能测试方法)
3.1 性能测试
目标值。
以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到预期目标。
3.2 负载测试
临界值。能够负载的最大健康值。
在性能测试、优化后,现有设施满足了预期目标。继续加压,测试出安全临界值。
对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如某种资源已经呈饱和状态,这时候继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。
3.3 压力测试
最高值。系统崩溃时的值。
在测试到系统处理能力临界值的情况下,继续增加请求,测试出系统崩溃时的最高值。
超过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力。
3.4 稳定性测试
模拟真实场景,间歇性对系统进行测试。在系统设计中使用的一些手段如缓存和时间(生命周期)有关的,测试结果可以做为缓存存货时间的一个参考。
被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定。在生产环境,请求压力是不均匀的,呈波浪特性,因此为了更好地模拟生产环境,稳定性测试也应不均匀地对系统施加压力。
4 全链路压测
TODO
5 性能优化(系统调优、性能测试完成之后干些啥?)
性能优化的前提是性能测试,性能优化的结果也是性能测试。
性能优化解决了什么问题?用户体验差、性能测试结果不理想部分进行调优,通过一些手段提高系统性能。
5.1 两个基本原则(进行系统的优化前提)
不能优化一个没有测试的软件
不能优化一个不了解的软件
没有测试就没有优化。
5.2 主要指标(什么时候优化)
测试完成,根据测试结果,分析性能瓶颈点进行系统调优。
可视化测试结果。
响应时间
并发数
吞吐量
性能计数器
5.3 一般方法(怎么优化)
性能测试,获得性能指标
指标分析,发现性能与资源瓶颈点
架构与代码分析,寻找性能与资源瓶颈关键所在
架构与代码优化,优化关键技术点,平衡资源利用
性能测试,进入性能优化闭环
5.4 分层思想(从哪方面优化)
机房与骨干网络
服务器与硬件
操作系统
虚拟机
基础组件(中间件)
软件架构
软件代码
5.4.1 多机房与网络
互联网系统硬件支持。越近消耗越小
5.4.2 服务器与硬件
系统宿主机器。硬件介质、服务器配置,服务器数量
5.4.3 操作系统
软件运行环境。系统配置
5.4.4 虚拟机(JVM)
JVM 调优
5.4.5 基础组件
组件升级、技术栈调整。
5.4.6 软件架构
三板斧
缓存
异步
集群
5.4.7 软件代码
遵循面向对象设计原则和模式。
利用语言特性 并发编程 资源服用 异步编程 数据结构和算法
版权声明: 本文为 InfoQ 作者【陈皮】的原创文章。
原文链接:【http://xie.infoq.cn/article/ad839b1f878fe97ccf3f7c6e1】。文章转载请联系作者。
评论 (1 条评论)