graph - Web 负载测试 - 波浪形响应时间图表示什么?
问题描述
我正在使用 JMeter 对 API 进行负载测试。当我将 API 托管在与测试相同的 PC 上时(虽然数据库是远程的),我得到了好的结果。但是,当我尝试通过相同的 API 运行负载测试但托管在同一网络上的不同 PC 上时,我的测试结果中出现了这种波形模式。
四组行中的每一行都是特定 API 端点的响应时间,蓝线是活动线程数。问题是:这种波浪形图案是否意味着什么?当 API 托管在与测试相同的计算机上时,此模式不可见。结果非常不同,我认为这种模式可能与问题有关。
我使用了 200 个活动线程,并且没有特定的配置会产生这种模式的请求。
解决方案
您需要注意以下几点:
- 连接时间和延迟指标,经过时间是连接时间、延迟和实际服务器响应时间的总和,因此这些“波动”可能是由网络问题引起的。
- 这可能表明正在测试的应用程序正在执行垃圾收集或使用由于资源不足而比内存慢得多的交换文件确保它有足够的空间来运行 CPU、RAM、网络和磁盘 IO。可以使用即JMeter PerfMon Plugin检查这些指标。这同样适用于 JMeter,如果 JMeter 无法足够快地发送请求 - 您将看到吞吐量下拉列表。
- 解决问题的最有效方法是在分析工具遥测下运行您的应用程序,这将允许您
识别最重的函数、堆中最大的对象等。 - 考虑检查您的数据库并检测慢查询,因为问题可能是由数据库问题(包括网络层)引起的
推荐阅读
- java - Minecraft 1.15.2 中的修改命令在给出参数时不断显示未知命令
- jquery - 如何在工具提示内容中添加不同的字体大小?
- python - 由于 pandas.io.common 未在 1.0.x 中导入 is_url 而导致 Pandas read_csv 错误
- unit-testing - 单元测试一个方法调用同一个类中的另一个方法
- sql - SQL 子查询错误,返回超过 1 个值
- vba - 将信息发送到剪贴板 - 旧方法失败 - 新方法
- c - 在可重入 Bison 生成的解析器中访问 yyout
- sql - 总和的 SQL 平均值
- php - 如何将 2 个 select 语句与内部连接结合起来,并导致它们在不同的列中
- php - PHP OOP“tail -f”功能失败