我们有一个批处理作业可以在 Java 6 上顺利运行。但是,我尝试将其更新到 Java 8,但抛出以下错误。
Error occurred during initialization of VM Cannot create VM thread.
Out of system resources.
这是批处理作业的片段。
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 新手。任何帮助,将不胜感激。谢谢。
最佳答案
您要求虚拟机具有 2.5G 堆空间 (-Xmx2500m),但您只允许 32M 内存(最大内存大小 32786kb = 32MB)。
尝试将最大内存增加到(至少)2.6G。您将需要比您为堆指定的内容稍微多一点的内容,以适应 VM 固定成本。
关于java - AIX - 无法创建 VM 线程。系统资源不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59247318/