1

I am able to compile a program with 1 GiB RAM on a VPS using old 2.6.x kernel. But when I tried to compile it on a VPS with 1.1 GiB RAM and 3.9.x kernel, the compiler always killed by OOM Killer.

How do I make OOM more passive?

比尔盖子
  • 394
  • 2
  • 10
  • 2
    Have you tried [just turning the stupid thing off](http://serverfault.com/questions/141988/avoid-linux-out-of-memory-application-teardown)? – voretaq7 Jul 10 '13 at 15:10

2 Answers2

5

You don't change the OOM killer - it's like that for a reason. but what you should do is reduce the memory overcommit. By default this is 50% (see /proc/sys/vm/overcommit_ratio) to handle the case where programs try to claim more memory than they ever need. But if you've got well-written programs which only claim the amount of memory they need (or you're runing JVMs which never do gc because they don't know the system is tight on memory) then the OOM Killer starts harvesting stuff.

symcbean
  • 19,931
  • 1
  • 29
  • 49
  • btw, `vm.overcommit_ratio` is used iff `vm.overcommit_memory == 2`, but default value is `0`: http://lxr.free-electrons.com/source/mm/mmap.c#L134 – SaveTheRbtz Jul 11 '13 at 04:01
-1

If you have enough space on your FS you can add temporary swap space to your VM via:

# fallocate -l 4g /SWAP
# mkswap /SWAP
# swapon /SWAP

But keep in mind that compilation won't be a fast process if your system is aggressively swapping.

SaveTheRbtz
  • 5,621
  • 4
  • 29
  • 45