方式
压力测试:通过模拟大量并发请求来对系统施加压力,观察系统在不同负载条件下的运行情况。可以使用专业的压力测试工具,如 JMeter 等,设置不同的并发用户数、请求频率等参数,模拟系统在高峰时期的负载。
对比测试:分别在使用线程池和 RabbitMQ 进行解耦优化前后,进行相同条件下的压力测试,对比两组测试结果的相关指标,以评估削峰效果。
指标
响应时间:指从客户端发送请求到接收到服务器响应的时间。在削峰场景下,优化前系统可能在高并发时响应时间大幅增加,例如从正常情况下的 1 秒延长到 5 秒甚至更久。而优化后,由于线程池和 RabbitMQ 的作用,系统能够更有效地处理请求,响应时间可能稳定在 2 秒左右,相比优化前有明显改善,这体现了系统在高峰负载下的响应能力提升。
吞吐量:即单位时间内系统能够处理的请求数量。假设优化前系统在高并发时每秒只能处理 50 个判题请求,而优化后每秒能处理 75 个请求,吞吐量提升了 50%,这表明系统在削峰方面取得了显著效果,能够在相同时间内处理更多的任务,有效缓解了高峰时期的压力。
任务积压情况:通过观察任务队列中的积压任务数量来衡量。优化前,在高峰时段任务队列可能会迅速堆积,导致大量任务等待处理,甚至可能出现队列溢出的情况。而优化后,由于 RabbitMQ 的消息队列机制和线程池的合理调度,任务积压得到有效控制,队列中的任务数量能够保持在一个合理的范围内,例如从优化前的几百个减少到几十个,这说明系统能够更好地应对突发流量,避免了因任务积压过多而导致系统崩溃或性能下降。
系统资源利用率:包括 CPU、内存等资源的利用率。在削峰优化前,高并发可能导致 CPU 使用率过高,达到 90% 甚至 100%,内存也可能被大量占用,出现内存泄漏或溢出的风险。优化后,线程池和 RabbitMQ 能够合理分配任务,使 CPU 使用率稳定在 70% - 80% 左右,内存使用也保持在合理范围内,这表明系统资源得到了更有效的利用,从而提升了系统的整体性能和稳定性,间接体现了削峰效果。