在运行分布式应用程序时,我在服务器和工作节点上都会遇到很多这样的错误:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f4f8c800000, 549453824, 2097152, 0) failed; error='Cannot allocate memory' (errno=12)
大多数情况下,流程会按预期继续完成,但有时流程也会失败。
我用java -Xms512M -Xmx50G -cp myjar.jar myclass.Main
节点有128 GB的RAM,大约120 GB是免费的。
我正在使用Oracle JVM:
$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
这些消息是什么意思,我怎么能摆脱它们?
答案 0 :(得分:5)
正如Platypus在我的问题评论中所建议的那样,我将Java降级为版本1.7.0_41。不幸的是问题仍然存在。
我甚至更远回到版本1.7.0_25,显然这个解决了错误。我尝试了很多次,错误消息再也没有出现过。