De Linux-kernel kan niet op een elegante manier omgaan met situaties waarin er geen geheugen meer is

Op de mailinglijst voor Linux-kernelontwikkelaars verhoogd Probleem met het omgaan met situaties met weinig geheugen in Linux:

Er is een bekend probleem waar veel mensen al jaren last van hebben en dat in minder dan een paar minuten kan worden gereproduceerd op de nieuwste Linux-kernel 5.2.6. Alle kernelparameters zijn ingesteld op standaardwaarden.

stappen:

  • Start op met de parameter “mem=4G”.
  • Schakel swap-ondersteuning uit (sudo swapoff -a).
  • We starten elke webbrowser, bijvoorbeeld Chrome/Chromium en/of Firefox.
  • We beginnen tabbladen met sites te openen en kijken hoe de hoeveelheid vrij geheugen afneemt.

Zodra zich een situatie voordoet waarbij een nieuw tabblad meer RAM nodig heeft dan beschikbaar is, loopt het systeem vrijwel volledig vast. U zult zelfs moeite hebben met het verplaatsen van de muiscursor. Het lampje van de harde schijf knippert non-stop (ik weet niet waarom). U kunt geen nieuwe applicaties starten of momenteel actieve applicaties sluiten.

Deze kleine crisis kan minuten of langer duren. Ik denk dat het systeem zich niet op deze manier zou moeten gedragen. Ik denk dat er iets moet worden gedaan om dergelijke “bevriezingen” te voorkomen.

Ik ben er vrij zeker van dat het mogelijk is om enkele sysctl-parameters te wijzigen om dit soort situaties te voorkomen, maar iets zegt me dat dit voor iedereen de standaard zou kunnen zijn, omdat niet-technische gebruikers die dit probleem tegenkomen het gebruik van Linux gewoon zullen opgeven en dat niet zullen doen. zorg. om oplossingen te zoeken op Google.

В opmerkingen op Reddit stellen sommige gebruikers voor om swap in te schakelen, maar dit lost het probleem niet op, het stelt het alleen maar uit en maakt het vaak nog erger. Als mogelijke oplossing in de toekomst zou het in de kernel verschenen systeem hierbij betrokken kunnen zijn 4.20 en verbeterd in de kern 5.2 PSI-subsysteem (Pressure Stall Information), waarmee u informatie kunt analyseren over de wachttijd voor het ontvangen van verschillende bronnen (CPU, geheugen, I/O). Dit subsysteem maakt het mogelijk om in een vroeg stadium de monitoring van geheugentekorten te organiseren, de bron van problemen te achterhalen en onbelangrijke applicaties te beëindigen zonder dat dit voor de gebruiker merkbare effecten veroorzaakt.

Bron: opennet.ru

Voeg een reactie