这是在Hyper-V机器上。 我已经将最小RAM设置为512,最大值设置为2048.主机拥有更多的RAM。
Linux在Hyper-V上的dynamicRAM有问题吗? 我似乎无法弄清楚为什么我们有内存问题。
编辑:我也只是禁用dynamicRAM和设置最小/启动达2048MB。 内存不足问题仍然崩溃。
编辑:
[root@localhost ~]# free -m total used free shared buffers cached Mem: 1869 1240 629 0 27 1049 -/+ buffers/cache: 162 1706 Swap: 991 6 985
那是在编译期间。 我会发布失败。 上次我做到了,系统在崩溃时仍然有大量的RAM。
PS:我注意到,如果我尝试使用make -j
来使用更多的处理器(12),编译将几乎立即崩溃。
下面是使用make -j选项专用的4GB示例。 make -j
之后编译崩溃了。
编辑3:我能够最终编译内核,而不使用-j选项,但为什么Hyper-V给我这样的内存错误是奇怪的。 还在做一些debugging。
make -j
(没有-j
参数)对于启动的命令数没有上限。 它尽可能并行化,而不仅仅是核心的数量(如问题types的build议)。
make -j 12
(或者可能less于12,取决于每个进程的内存饿了)在你的情况下可能是一个更理智的命令。
从man 1 make
:
-j [jobs], --jobs[=jobs] Specifies the number of jobs (commands) to run simultaneously. If there is more than one -j option, the last one is effective. If the -j option is given without an argument, make will not limit the number of jobs that can run simultaneously.