AIX - 无法创建 VM 线程。系统资源不足
Posted
技术标签:
【中文标题】AIX - 无法创建 VM 线程。系统资源不足【英文标题】:AIX - Cannot create VM thread. Out of system resources 【发布时间】:2020-04-02 11:08:50 【问题描述】:我们有一个批处理作业可以在 Java 6 上顺利运行。但是,我正在尝试将其更新到 Java 8,但会引发以下错误。
VM 初始化过程中发生错误无法创建 VM 线程。
系统资源不足。
这是批处理作业的 sn-p。
execute $JAVA_HOME/bin/java -Xmx2500m -classpath $CLASSPATH org.springframework.batch.core.launch.support.CommandLineJobRunner app-context/main-context.xml
我使用的机器是 Unix AIX。
$uname -a
AIX <servername> 2 7 00CBE6574C00
Java 8 已安装在机器上。 JAR 文件也被编译为 Java 8。
$java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 8.0.5.41 - ### (SR5 FP41))
IBM J9 VM (build 2.9, JRE 1.8.0 AIX ppc64-64-Bit Compressed References ### (JIT enabled, AOT enabled)
我认为这可能是堆大小问题,所以我使用了从 -Xmx64m 到 -Xmx5000m 的最大堆大小。但是,错误仍然存在。
这是系统电流限制:
$ulimit -a
core file size (blocks, -c) 1048575
data seg size (kbytes, -d) 131072
file size (blocks, -f) unlimited
max memory size (kbytes, -m) 32768
open files (-n) 40961
pipe size (512 bytes, -p) 64
stack size (kbytes, -s) 32768
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
我是 unix 新手。任何帮助,将不胜感激。谢谢。
【问题讨论】:
【参考方案1】:您要求使用 2.5G 堆空间 (-Xmx2500m) 的 VM,但您只允许 32M 内存(最大内存大小 32786kb = 32MB)。
尝试将最大内存增加到(至少)2.6G。您将需要比您为堆指定的数量略多一些,以适应 VM 固定成本。
【讨论】:
谢谢,达什。但是,我认为这不是问题所在,因为它使用 -Xmx2500m 和最大内存大小 32786kb 在 Java 6 上运行顺畅。除了将其升级到 Java 8 之外,没有任何环境变化。 请尝试使用更大的ulimit
值:新程序比旧程序占用更多内存已不是什么秘密。【参考方案2】:
再次尝试更新 java 应用程序。它肯定会起作用。或者增加内存VRA
【讨论】:
以上是关于AIX - 无法创建 VM 线程。系统资源不足的主要内容,如果未能解决你的问题,请参考以下文章