内容提要
性能测试是网站优化的前提与检验标准,分为主观(用户感受)和客观(指标衡量)两种视角。核心指标包括响应时间、并发数、吞吐量(TPS、QPS等)和性能计数器(CPU、内存、I/O等)。测试方法有性能测试、负载测试、压力测试和稳定性测试,其中稳定性测试应模拟生产环境的不均匀压力。
延伸解读
主观与客观性能:两种视角缺一不可
文章将网站性能分为主观视角(用户感受到的速度,如打开APP的快慢)和客观视角(用指标衡量的性能)。这提示优化时不能只看监控数据:响应时间等客观指标达标,用户仍可能因页面渲染、网络波动等主观体验不佳而觉得慢。反之,只凭用户反馈也难以定位问题。两者结合,才能既满足技术指标又保证实际体验。
吞吐量公式揭示的权衡关系
文章给出吞吐量 =(1000 / 响应时间)× 并发数,说明吞吐量由响应时间和并发数共同决定。这意味着单纯增加并发数未必提升吞吐量:若响应时间随并发上升而变长,吞吐量可能不增反降。实际测试中应同时观察响应时间与并发数的变化,找到系统处理能力的合理区间,而不是盲目加压。
四种测试方法对应不同验证目标
文章区分了性能测试、负载测试、压力测试和稳定性测试:性能测试验证系统是否达到设计预期;负载测试逐步增加并发,直到某项指标达到安全临界值;压力测试则超过安全负载,直至系统崩溃,以获取最大承受能力;稳定性测试让系统在特定环境下长时间运行。四者目标不同,应按需选择,不能互相替代。
稳定性测试为何要模拟波浪压力
文章指出生产环境的请求压力并不均匀,呈波浪特性,因此稳定性测试也应不均匀地施加压力。若只用恒定压力长时间运行,可能掩盖流量高峰时的资源竞争、队列堆积等问题。按波浪模式加压,更接近真实场景,有助于发现系统在压力起伏下的稳定性隐患,使测试结果更具参考价值。
Q&A
性能测试的主要指标有哪些?
主要指标包括响应时间、并发数、吞吐量和性能计数器。响应时间指从发出请求到收到最后响应数据的时间;并发数指系统同时处理请求的数目;吞吐量指单位时间内系统处理的请求数量;性能计数器包括System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等。
吞吐量是怎么计算的?
吞吐量 = (1000 / 响应时间) * 并发数。吞吐量可以用“请求数/秒”或“页面数/秒”来衡量,也可以用“访问人数/天”或“处理的业务数/小时”等来衡量。TPS(每秒事务数)、HPS(每秒HTTP请求数)、QPS(每秒查询数)也是吞吐量的指标。
性能测试、负载测试、压力测试和稳定性测试有什么区别?
性能测试是以系统设计初期规划的性能指标为预期目标,验证系统在资源可接受范围内是否能达到性能预期;负载测试是不断增加并发请求以增加系统压力,直到某项或多项性能指标达到安全临界值;压力测试是在超过安全负载的情况下继续施加压力,直到系统崩溃或不能再处理任何请求,以获得系统最大压力承受能力;稳定性测试是在特定环境下给系统加载一定业务压力,运行较长时间以检测系统是否稳定。
稳定性测试为什么要模拟不均匀的压力?
因为在生产环境中,请求压力是不均匀的,呈波浪特性。为了更好的模拟生产环境,稳定性测试也应不均匀地对系统施加压力。
System Load 多少算合理?
System Load 等于正在处理的线程数加上等待处理的线程数。合理的 System Load 与 CPU 的核数有关,通常建议不超过 CPU 核数。
性能计数器超过阈值时应该怎么办?
可以对性能计数器设置报警阈值,当监控系统发现性能计数器超过阈值时,就向运维和开发人员报警,以便及时发现处理系统异常。