Désactiver la gestion préventive de la mémoire
Si l’OOM killer se déclenche sur votre serveur alors qu’il reste une bonne quantité de mémoire, conduisant au quasi crash du serveur (kill du serveur X, mysql, SSH, …), alors il vous sera peut-être nécessaire de changer le comportement de celui ci pour le désactiver.
Cela se voit par des messages du genre « invoked oom-killer » dans les logs systèmes:
... Jan 28 00:52:58 box kernel: [15199.058126] mysqld invoked oom-killer: gfp_mask=0x44d0, order=2, oomkilladj=0 Jan 28 00:52:58 box kernel: [15199.058145] Pid: 5572, comm: mysqld Not tainted 2.6.28-17-generic #58-Ubuntu Jan 28 00:52:58 box kernel: [15199.058158] Call Trace: Jan 28 00:52:58 box kernel: [15199.058183] [] ? printk+0x18/0x1a Jan 28 00:52:58 box kernel: [15199.058204] [ ] oom_kill_process+0x75/0x210 Jan 28 00:52:58 box kernel: [15199.058222] [ ] ? select_bad_process+0xc3/0x100 Jan 28 00:52:58 box kernel: [15199.058239] [ ] out_of_memory+0xa2/0x140 ...
Pour changer ce comportement, il suffit de faire
sudo -i echo 2 > /proc/sys/vm/overcommit_memory
Pour conserver ce changement au redémarrage
sudo cp /etc/sysctl.conf /etc/sysctl.conf.org echo "vm.overcommit_memory = 2" | sudo tee -a /etc/sysctl.conf