我可以使用旧的2.6.x内核在VPS上编译一个带1个GiB RAM的程序。 但是当我试图在1.1 GiB RAM和3.9.x内核的VPS上编译时,编译器总是被OOM Killer杀死。
如何让OOM更加被动?
你不会改变OOM杀手 – 这就是这样的原因。 但是你应该做的是减less内存过量使用。 默认情况下,这是50%(请参阅/ proc / sys / vm / overcommit_ratio )来处理程序尝试声明比以往任何时候都要多的内存的情况。 但是如果你的程序写得很好,只能声明他们需要的内存量(或者你正在运行JVM,因为他们不知道系统内存紧张,所以永远不会执行gc),那么OOM Killer就会开始收集东西。
如果您的FS上有足够的空间,您可以通过以下方式为您的VM添加临时交换空间:
# fallocate -l 4g /SWAP # mkswap /SWAP # swapon /SWAP
但请记住,如果您的系统正在积极地交换,编译将不会是一个快速的过程。