Posts Tagged ‘oomkiller’

De Gevreesde OOM-killer

vrijdag, september 26th, 2008

De linux kernel, zoals deze standaard wordt afgeleverd, heeft een excentrieke procedure in de omgang met situaties waarin het geheugen van een (virtuele) machine op raakt: Een proces genaamd ‘oomkiller’ kijkt naar de lopende processen en kiest er een uit om te beĆ«indigen in de hoop dat daarmee geheugen vrijkomt. Op papier is dit een redelijke oplossing, maar in de praktijk is gebleken dat in serveromgevingen de keuze die oomkiller maakt vaak nogal ongelukkig uitkomt. Het komt bijvoorbeeld vaak voor dat er processen worden beĆ«indigd en de machine vervolgens onbereikbaar achterblijft.

Om deze overlast te voorkomen gaan wij op korte termijn de instelling van de kernels aanpassen zodat een VPS zal worden gereboot op het moment dat al het geheugen op is. Alhoewel dit in enkele gevallen zou kunnen leiden tot een reboot die voorkomen had kunnen worden vinden wij dat risico minder ernstig dan een VPS die compleet vastloopt, iets dat we nu vaak zien gebeuren als gevolg van oomkiller.

Om de kans op een reboot te verlagen zullen wij tevens de RAM-overcommit instelling van de kernel standaard verlagen. Deze overcommit zorgt ervoor dat applicaties in totaal meer geheugen kunnen alloceren dan er maximaal op de VPS beschikbaar is. Als enkele applicaties vervolgens van een groot gedeelte van hun allocatie gebruik willen gaan maken zal het geheugen van de VPS snel opgebruikt worden. Het verlagen van de RAM overcommit vermindert dit risico.

Deze verandering zal eerst in alle nieuw opgeleverde VPSen worden doorgevoerd. Bestaande VPSen die last hebben van oomkiller zullen, in overleg met de klant, dezelfde wijzigingen krijgen.