A Linux kernel nem tudja kecsesen kezelni a kifogyott memóriát

A Linux kernel fejlesztői levelezőlistáján emelt Probléma a kevés memória kezelésével Linux alatt:

Van egy ismert probléma, amely sok embert sok éven át sújt, és kevesebb mint néhány perc alatt reprodukálható a legújabb 5.2.6-os Linux kernelen. Minden kernelparaméter alapértelmezett értékre van állítva.

Lépések:

  • A rendszerindítás a „mem=4G” paraméterrel.
  • Kapcsolja ki a swap támogatást (sudo swapoff -a).
  • Bármilyen webböngészőt elindítunk, például Chrome/Chromium és/vagy Firefox.
  • Elkezdjük megnyitni a lapokat a webhelyekkel, és figyeljük, hogyan csökken a szabad memória mennyisége.

Amint olyan helyzet adódik, hogy egy új lap több RAM-ot igényel, mint amennyi rendelkezésre áll, a rendszer szinte teljesen lefagy. Még az egérkurzor mozgatása is nehézségekbe ütközik. A merevlemez jelzőfénye folyamatosan villog (nem tudom, miért). Nem fog tudni új alkalmazásokat elindítani, illetve a jelenleg futó alkalmazásokat bezárni.

Ez a kis válság percekig vagy tovább tarthat. Szerintem a rendszernek nem kellene így viselkednie. Szerintem tenni kell valamit az ilyen „lefagyások” elkerülése érdekében.

Biztos vagyok benne, hogy meg lehet változtatni néhány sysctl paramétert az ilyen helyzetek elkerülése érdekében, de valami azt súgja, hogy ez lehet az alapértelmezett mindenki számára, mert a nem műszaki felhasználók, akik ezzel a problémával találkoznak, egyszerűen feladják a Linux használatát, és nem fognak gondoskodni. hogy megoldásokat kereshessen a Google-on.

В Hozzászólások A Redditen néhány felhasználó javasolja a swap engedélyezését, de ez nem oldja meg a problémát, csak elodázza és gyakran rontja a helyzetet. A jövőben lehetséges megoldásként a kernelben megjelent a szóba jöhet 4.20 és a magban javult 5.2 PSI (Pressure Stall Information) alrendszer, amely lehetővé teszi a különböző erőforrások (CPU, memória, I/O) fogadásának várakozási idejére vonatkozó információk elemzését. Ez az alrendszer lehetővé teszi a memóriahiány korai megfigyelésének megszervezését, a problémák forrásának meghatározását és a nem fontos alkalmazások leállítását anélkül, hogy a felhasználó számára észrevehető hatásokat okozna.

Forrás: opennet.ru

Hozzászólás