JMeter:CPU 使用率低但响应太低

Posted

技术标签:

【中文标题】JMeter:CPU 使用率低但响应太低【英文标题】:JMeter: Low CPU usage but response too low 【发布时间】:2017-03-20 04:56:08 【问题描述】:

我正在尝试使用 JMeter 对 1000 个用户的 Web 服务进行负载测试。我可以看到,一旦注入 1000 个用户,CPU 使用率约为 30%,但在响应方面,所用的最长时间约为 12 秒。

我的问题是,如果 CPU 没有 100% 使用,接收任何响应的最长时间不应超过几秒。

【问题讨论】:

多少个CPU核心? 单核处理器 由于没有关于系统功能的信息,无法说。如果它是 IO 绑定的,这很容易发生。 它只是一个获取一些细节的网络服务。 您为 JMeter 使用了多少 JVM 堆?您在运行 JMeter 时使用哪种垃圾收集算法?请您发布完整结果 CSV 文件的快照,显示延迟、经过和连接时间? 【参考方案1】:
    您可以监控应用服务器端的 CPU 使用情况。然而,魔鬼可能存在于其他地方,例如应用程序可能会遇到可用 RAM 不足、密集 swapping 或达到网络或磁盘 IO 的限制,因此您也应该考虑这些指标。可以使用JMeter PerfMon Plugin 监控上述(以及更多)。 与第 1 点基本相同,但适用于 JMeter 方面。 JMeter 测试非常耗费资源,如果 JMeter 缺乏资源,它发送请求的速度会慢得多。因此,请确保您也监控 JMeter 机器上的基线操作系统健康指标。另外 1000 个用户是相当高的负载,请仔细检查您的测试是否对应 JMeter Best Practices 这可能是您的应用程序的瓶颈,即它无法在 1000 个并发用户的情况下提供良好的响应时间。使用相关的profiler tool 检测运行时间最长的函数并调查根本原因。

【讨论】:

谢谢 Dmitri,以上几点真的很有帮助。想通知您,内存是 1GB。我正在使用 AWS EC2、t2.micro 来监控 CPU。

以上是关于JMeter:CPU 使用率低但响应太低的主要内容,如果未能解决你的问题,请参考以下文章

RubyMine - inotify(7) 监视限制太低

Jmeter插件之ServerAgent服务器性能监控工具的安装和使用

性能监控实战(全栈性能测试修炼宝典JMeter实战-第九章)

Django、DRF、nginx、Jmeter:即使 CPU 没有负载等,采样时间也会变大

Jmeter之性能测试指标介绍

Jmeter简单压力测试