A Tip on Setting Memory Overcommit in the Kernel

Memory overcommit is the kernel's attempt to utilize as much memory as possible. When a program requests memory, the kernel assumes that it will not really need all of the memory it asked for. It will then "double book" that memory for other applications. It continues to do this until it runs out of memory.

So, setting the overcommit ratio to 99 means that 99% of the memory can be double-booked. If you have a lot of apps that actually use all of the memory they ask for, you'll run into a lot of trouble. The default value for overcommit is 50. It's typically best to not specify that value unless you know exactly what you are doing.

Also, interesting to note, from linux/Documentation/sysctl/vm.txt:

min_free_kbytes:

This is used to force the Linux VM to keep a minimum number
of kilobytes free.  The VM uses this number to compute a
pages_min value for each lowmem zone in the system.  Each
lowmem zone gets a number of reserved free pages based
proportionally on its size.

Some minimal amount of memory is needed to satisfy PF_MEMALLOC
allocations; if you set this to lower than 1024KB, your system
will become subtly broken, and prone to deadlock under high loads.

Setting this too high will OOM your machine instantly.

For emphasis, we've reproduced the following lines:

if you set this to lower than 1024KB, your system will become subtly broken, and prone to deadlock under high loads.

Setting this too high will OOM your machine instantly.

In short, modifying these tuning options can definitely break your system if you don't know what you are doing. We recommend not even specifying them unless you are absolutely certain that you should be changing them.