简体   繁体   English

这是memory不足造成的吗?

[英]Is this caused by insufficient memory?

This problem occurred when I used chipyard to compile Boom.这个问题是我用chipyard编译Boom的时候出现的。 Is this because of insufficient memory?这是因为memory不足吗? I am running on a 1 core 2G cloud server.我在 1 核 2G 云服务器上运行。

/bin/bash: line 1: 9986 Killed 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 ";project utilities; runMain utilities.GenerateSimFiles -td /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig -sim verilator" /home/cuiyujie/workspace/Boom/chipyard/common.mk:86: recipe for target '/home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/sim_files.f' failed make: *** [/home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/sim_files.f] Error 137 /bin/bash: line 1: 9986 Killed 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 ";项目实用程序;runMain utility.GenerateSimFiles -td /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard. TestHarness.LargeBoomConfig -sim verilator" /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

When I adjusted the memory to 4G, this appeared.当我将memory调到4G时,出现了这个。

Done elaborating.阐述完毕。 OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006dc3b7000, 97148928, 0) failed; OpenJDK 64 位服务器 VM 警告:INFO: os::commit_memory(0x00000006dc3b7000, 97148928, 0) 失败; error='Cannot allocate memory' (errno=12) error='无法分配内存' (errno=12)

There is insufficient memory for the Java Runtime Environment to continue. Java 运行时环境没有足够的 memory 继续。 Native memory allocation (mmap) failed to map 97148928 bytes for committing reserved memory.本机 memory 分配(mmap)未能提交 map 97148928 字节,用于提交保留的 memory。 An error report file with more information is saved as: /home/cuiyujie/workspace/Boom/chipyard/hs_err_pid2876.log /home/cuiyujie/workspace/Boom/chipyard/common.mk:97: recipe for target 'generator_temp' failed make: *** [generator_temp] Error 1包含更多信息的错误报告文件保存为: /home/cuiyujie/workspace/Boom/chipyard/hs_err_pid2876.log /home/cuiyujie/workspace/Boom/chipyard/common.mk:97: recipe for target 'generator_temp' failed make : *** [generator_temp] 错误 1

Should I adjust to 8G memory, or through what command to increase the memory size that the process can use?我应该调整到8G memory,还是通过什么命令增加进程可以使用的memory大小?

When I adjusted the memory to 16G, this appeared.当我将memory调到16G时,出现了这个。

/bin/bash: line 1: 2642 Killed 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 ";project tapeout; runMain barstools.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.TestH /bin/bash: line 1: 2642 Killed 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 ";project 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.TestH arness.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.TestHarnes arness.LargeBoomConfig.anno.json -tsaof /home/cuiyujie/workspace/Boom/chipyard/sims/verilator/generated-src/chipyard.TestHarness.LargeBoomConfig/chipyard.TestHarness.LargeBoomConfig.top.anno.Z466DEEC76ECDF54FCA6D38 -tdf76ECDF54FCA6D38 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/生成-src/chipyard.TestHarnes s.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 error" /home/cuiyujie/workspace/Boom/chipyard/common.mk:123: recipe for target 'firrtl_temp' failed make: *** [firrtl_temp] Error 137 s.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 error" /home/cuiyujie/workspace/Boom/chipyard/common. mk:123: 目标 'firrtl_temp' 的配方失败 make: *** [firrtl_temp] 错误 137

Short anwer: yes简短回答:是的


Error 137 is thrown when your host runs out of memory .当您的主机用完 memory时,将引发Error 137

"I am running on a 1 core 2G cloud server" “我在 1 核2G云服务器上运行”

When you try to assign 8GB to the JVM, OOM-Killer says "no-no, f... no way" , and kicks in sending a SIGKILL ;当您尝试将8GB分配给 JVM 时, OOM-Killer会说“不,不,f...没办法” ,并开始发送SIGKILL This Killer is a proactive process that jumps in to save the system when its memory level goes too low, by killing the resource-abusive processes .这个 Killer 是一个主动进程,当它的 memory 级别过低时,它会通过杀死资源滥用进程来拯救系统

In this case, the abusive process ( very abusive, indeed ) is your java program, which is trying to allocate more than(*) 4 times the maximum avaliable memory in your host .在这种情况下,滥用进程(确实非常滥用)是您的 java 程序,它试图分配超过(*) 4 倍于您主机中最大可用 memory 的程序

Exit Codes With Special Meanings 具有特殊含义的退出代码

在此处输入图像描述

                 [error code 137 --> kill -9] (SIGKILL)

You should either:您应该:

  • Assign at max ~ 1.2GB - 1.5GB to your process.最多为您的进程分配 ~ 1.2GB - 1.5GB ( and keep your fingers crossed ) 并保持你的手指交叉

  • Change your host for something a little powerful/bigger, if you do require that much memory for your process.如果您的进程确实需要那么多 memory,请将您的主机更改为更强大/更大的东西。

  • Check if you really require 8GB for that process .检查您是否真的需要 8GB 来执行该过程


Also note that the given params are error prone: Xmx8G -Xss8M means maximum of 8GB and a minimum of 8M for the heap.另请注意,给定的参数容易出错:Xmx8G -Xss8M 表示堆的最大值为 8GB,最小值为 8M。 This should be closer, as Xmx8G - Xms4G这应该更接近,因为Xmx8G - Xms4G

* As the free memory won't be 2GB either, but something in between 1.6-1.8 GB *因为免费的 memory 也不会是 2GB,而是介于 1.6-1.8 GB 之间

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM