架构作业 - 第七周
性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?
性能测试方法
性能测试 :以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期
负载测试:对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指 标达到安全临界值,如某种资源已经呈饱和状态,这时候继续对系统施加压力,系统的 处理能力不但不能提高,反而会下降
压力测试:超过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理 任何请求,以此获得系统最大压力承受能力
ps:前面三个测试:其实是同一个测试,随着压测数据增加,而取临界值的测试;
压测工具压测
分析
CPU、Load:
Linux中,进程分为三种状态,一种是正在运行的进running process,一种是可运行的进程runnable process,另一种是阻塞的进程Blocked process;
进程可运行状态时,它处在一个运行队列run queue中,与其他可运行进程争夺CPU时间。
系统负载Load:正在运行和准备好运行的进程总数;请求的线程数大于当前的处理能力,就出现等待阻塞,引起load升高;
性能压测:
第一阶段:随着并发压力的增加,系统吐吞量(TPS/QPS)逐渐提升,系统对外的响应时间也并不会有较大的波动,因为System Load和内存都有较大的空闲;
第二阶段:并发再增加,这时系统的负载已经有较大的升高,慢慢接近能处理的瓶颈;内存也是同理,此时还会开辟虚拟内存空间;此时处于等待的线程数以及内存也接近上限;
此时的吐吞量达到最上限,即使再大的并发量,CPU和内存都已经满载,都处于等待阻塞的状态;
第三阶段:此时再增加并发,系统已经完全处理不过来了,等待阻塞的线程数越来越多,响应时间开始急剧增加,TPS也开始下降,因为系统的就绪队列过长,大量进程争夺CPU,大量处理的上下切换,CPU开销会越来越大,逐渐奔溃;
性能压测时: 最好再结合,CPU、Load、内存、I/O、宽带等硬件资源使用情况,一起观察;这样可出更准备得出系统的最佳运行状态;
实践过程,压测一般要多操作几次,一次达到的数据不一定完全准备;不定期的压测对系统的了解会更有把握;
评论