【发布时间】:2021-06-06 22:06:19
【问题描述】:
这个问题是我用chipyard编译Boom的时候出现的。这是因为内存不足吗?我在 1 核 2G 云服务器上运行。
/bin/bash: 第 1 行:9986 杀死 java -Xmx8G -Xss8M -XX:MaxPermSize=256M -jar /home/cuiyujie/workspace/Boom/chipyard/generators/rocket-chip/sbt-launch.jar -Dsbt.sourcemode=true -Dsbt.workspace=/home/cuiyujie/workspace/Boom/chipyard/tools ";项目实用程序;运行主要实用程序.GenerateSimFiles -td /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig -sim验证器” /home/cuiyujie/workspace/Boom/chipyard/common.mk:86:目标配方 '/home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/sim_files.f' 失败的 make: *** [/home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/sim_files.f] 错误 137
当我把内存调到4G的时候,出现了这个。
完成详细说明。 OpenJDK 64 位服务器虚拟机警告:信息: os::commit_memory(0x00000006dc3b7000, 97148928, 0) 失败; error='无法分配内存' (errno=12)
Java 运行时环境的内存不足,无法继续。 本机内存分配 (mmap) 未能映射 97148928 字节以提交保留内存。 包含更多信息的错误报告文件保存为: /home/cuiyujie/workspace/Boom/chipyard/hs_err_pid2876.log /home/cuiyujie/workspace/Boom/chipyard/common.mk:97:目标配方 'generator_temp' 失败 make: *** [generator_temp] 错误 1
我应该调整到8G内存,还是通过什么命令增加进程可以使用的内存大小?
当我把内存调到16G的时候,出现了这个。
/bin/bash: 第 1 行:2642 杀死 java -Xmx8G -Xss8M -XX:MaxPermSize=256M -jar /home/cuiyujie/workspace/Boom/chipyard/generators/rocket-chip/sbt-launch.jar -Dsbt.sourcemode=true -Dsbt.workspace=/home/cuiyujie/workspace/Boom/chipyard/tools ";项目tapeout; runMain bartools.tapeout.transforms.GenerateTopAndHarness -o /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig.top.v -tho /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig.harness.v -i /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig.fir --syn-top ChipTop --harness-top TestHarness -faf /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig.anno.json -tsaof /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig.top.anno.json -tdf /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/firrtl_black_box_resource_files.top.f -tsf /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig.top.fir -thaof /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig.harness.anno.json -hdf /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/firrtl_black_box_resource_files.harness.f -thf /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig.harness.fir --infer-rw --repl-seq-mem -c:TestHarness:-o:/home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig .top.mems.conf -thconf /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig.harness.mems.conf -td /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig -ll 错误”/home/cuiyujie/workspace/Boom/chipyard/common.mk:123: 目标 'firrtl_temp' 的配方失败 make: *** [firrtl_temp] 错误 137
【问题讨论】:
-
原来的命令是make CONFIG=LargeBoomConfig。我是否更改为 CONFIG=LargeBoomConfig -Xmx6G -Xss3G?
-
是的,或者在执行过程时通过命令行:
java -Xms3G -Xmx6G yourprogam.java -
请注意,我的错误是写 -Xss 而应该是 -Xms (第一个用于堆,这里暂时不涉及)
-
-Xms3G-- 为 JVM 分配最少 3GB-Xmx6G-- 为 JVM 最多分配 6GB -
make:无效选项 -- 'G'。发生这种情况。
标签: java linux memory-management out-of-memory