In de mailinglijst van Linux-kernelontwikkelaars is het probleem van het omgaan met situaties van uitputting van vrije geheugen in Linux:
Er is een probleem bekend dat veel mensen al jaren kwelt en dat in minder dan enkele minuten kan worden gereproduceerd op de laatste versie van de Linux-kernel 5.2.6. Alle kernelparameters zijn ingesteld op de standaardwaarden.
Stappen:
- We starten op met de parameter "mem=4G".
- We schakelen swap-ondersteuning uit (sudo swapoff -a).
- We starten een webbrowser, bijvoorbeeld Chrome/Chromium en/of Firefox.
- We beginnen tabs te openen met websites en kijken hoe het beschikbare geheugen afneemt.
Zodra er een situatie ontstaat waarin een nieuwe tab meer geheugen vereist dan beschikbaar is, bevriest het systeem praktisch helemaal. Je kunt zelfs nauwelijks de muisaanwijzer bewegen. Het harde schijf lampje knippert zonder stoppen (ik begrijp niet waarom). Je kunt geen nieuwe applicaties starten of de huidige applicaties sluiten.
Deze kleine crisis kan minuten of langer aanhouden. Ik denk dat het systeem zich niet zo zou moeten gedragen. Ik denk dat er iets moet worden gedaan om zulke "bevriezingen" te voorkomen.
Ik ben bijna zeker dat er enkele sysctl-parameters kunnen worden aangepast om zulke situaties te vermijden, maar iets vertelt me dat dit standaard voor iedereen kan worden gedaan, omdat niet-technische gebruikers die met dit probleem worden geconfronteerd, eenvoudig zullen afzien van het gebruik van Linux en het niet zullen opzoeken op Google.
In Op Reddit suggereren sommige gebruikers om swap in te schakelen, maar dat lost het probleem niet op, het schuift het alleen maar naar voren en verergert het vaak. Een mogelijke oplossing in de toekomst kan de recent in de kernel geĆÆntroduceerde en verbeterde in de kernel PSI (Pressure Stall Information) subsystem zijn, dat de mogelijkheid biedt om informatie over wachttijden voor verschillende middelen (CPU, geheugen, invoer/uitvoer) te analyseren. Dit subsystem biedt de mogelijkheid om vroegtijdig geheugengebrek te volgen, de bron van problemen te bepalen en onbelangrijke applicaties af te sluiten zonder merkbare effecten voor de gebruiker.
Bron: opennet.ru
