【问题标题】:JMeter - out of memory on linux RH 7.5JMeter - linux RH 7.5 内存不足
【发布时间】:2019-05-06 23:04:45
【问题描述】:

我正在尝试为应用程序运行负载测试。为此,我在具有 16GB Ram 和 8vCPU 电源的 linux Red hat 7.5 Vm 上使用 JMeter(v4 和 v5)。目标是通过 µ-service 连接 20k 用户。

但是在测试运行期间,我在控制台上收到以下错误: 未捕获的异常 java.lang.OutOfMemoryError: 无法创建新的本地线程。

这是我的 jvm jmeter 配置: 猫箱/jmeter | grep 堆

HEAP(可选)用于内存管理的 Java 运行时选项

: "${HEAP:="-Xms1g -Xmx4g -XX:MaxMetaspaceSize=256m"}"

有什么想法吗? 我尝试在 jmeter 中更改堆大小,但这似乎没有任何帮助。

【问题讨论】:

  • 这是日志错误:

标签: jmeter


【解决方案1】:

unable to create new native thread 不是您可以通过增加 JVM Heap 来解决的问题,您将超过操作系统级别定义的 最大线程数 阈值。

您需要通过ulimit 命令修改nproc value 或修改/etc/security/limits.conf 文件的样子:

your_user           soft    nproc          1024
your_user           hard    nproc          32768

参考:Unable to create new native thread

如果您在提高操作系统级别的最大进程数后仍会收到此错误 - 很可能您将不得不选择 Distributed Testing

【讨论】:

  • 我不是 VM 上的 root,如何使用我的应用程序帐户修改这些限制?
  • 您可以使用ulimit 命令提高限制,但它会在会话结束之前有效。您可以考虑将setUp Thread Group 添加到您的测试计划并通过OS Process Sampler 增加限制
  • $ ulimit -Hu 63382 $ ulimit -Su 4096
  • 这是我的 ulimit 软硬配置,我已经对这个配置有错误:$ ulimit -Hu 63382 $ ulimit -Su 4096
猜你喜欢
  • 1970-01-01
  • 2011-07-05
  • 2019-01-04
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多