batch-file - 如何避免 Jmeter 中的 java.lang OutOfMemory 错误?
问题描述
我一直在尝试在 中运行 50 个用户Jmeter
,但是一旦用户数量超过 35,我在命令提示符中看到Java.Lang OutOfMemory
错误。我的机器有 16GB 的物理内存,尽管堆大小增加到 8GB(8192m) jmeter.bat 文件,我仍然碰巧看到同样的错误。我还禁用了侦听器以减少内存消耗,并使用以下堆命令来增加其大小。
set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=8192m
我还使用了一些替代命令来增加堆大小,它们是:
set HEAP="-Xms2g -Xmx2g -X:MaxMetaspaceSize=512m" && jmeter.bat
HEAP="-Xms512m -Xmx4096m"
但我碰巧看到另一个错误说明
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
errorlevel=1
任何人都可以帮助我解决这个问题以成功运行 50 个用户的测试吗?
解决方案
确保您安装了 64 位 Java,您将无法为 32 位 JVM 分配超过 2 GB 的空间
确保在打错字时使用正确的语法,并且看起来您不知道自己在做什么(设置过高的元空间大小会导致问题而不是修复它们):
OutOfMemoryError 异常可以有很多面,不一定与堆不足有关,请阅读堆栈跟踪和最终。hprof 文件更仔细
确保遵循JMeter 负载测试“内存不足”失败文章的 9 个简单解决方案中的建议
推荐阅读
- linux - 如何在 Makefile 中捕获退出 (ctrl+c) 信号?
- python - 带有布尔掩码的精美索引 | Python中的numpy
- android - Camera2 中的类似方法,例如 Camera 中的 onPreviewFrame
- shell - 重命名目录中的多个文件
- c++ - 使用基于范围的 for 循环为向量赋值
- django - 显示此错误的 django 搜索过滤器中的“无法使用无作为查询值”
- html - 从与前一行不相邻的新行添加新评论
- google-app-engine - GAE / GCP Flex Environment Flask 应用程序不断将 HTTPS 重定向到 HTTP
- json - JSON 格式化程序(新行中的每个对象)
- ios - 将大量数据保存到 CoreData