Linuxové jádro nedokáže elegantně zvládnout situace s nedostatkem paměti

Na konferenci vývojářů jádra Linuxu zvednutý Problém s řešením situace nedostatku paměti v Linuxu:

Existuje známý problém, který sužuje mnoho lidí po mnoho let a lze jej reprodukovat za méně než několik minut na nejnovějším linuxovém jádře 5.2.6. Všechny parametry jádra jsou nastaveny na výchozí hodnoty.

Kroky:

  • Spusťte s parametrem „mem=4G“.
  • Vypněte podporu swapu (sudo swapoff -a).
  • Spustíme jakýkoli webový prohlížeč, například Chrome/Chromium a/nebo Firefox.
  • Začínáme otevírat karty s weby a sledovat, jak se snižuje množství volné paměti.

Jakmile nastane situace, kdy nová karta vyžaduje více RAM, než je k dispozici, systém téměř úplně zamrzne. Budete mít potíže i s pohybem kurzoru myši. Indikátor pevného disku bude nepřetržitě blikat (nevím proč). Nebudete moci spouštět nové aplikace ani zavírat aktuálně spuštěné aplikace.

Tato malá krize může trvat minuty i déle. Myslím, že systém by se takto chovat neměl. Myslím, že je třeba něco udělat, aby se zabránilo takovým „zamrzání“.

Jsem si docela jistý, že je možné změnit některé parametry sysctl, abyste se vyhnuli této situaci, ale něco mi říká, že by to mohlo být výchozí pro všechny, protože netechnickí uživatelé, kteří se setkají s tímto problémem, jednoduše přestanou používat Linux a nebudou péče. abyste mohli hledat řešení na Googlu.

В komentáře na Redditu někteří uživatelé navrhují povolit swap, ale to problém neřeší, pouze jej odkládá a často zhoršuje. Jako možné řešení v budoucnu může být zapojeno to, co se objevilo v jádře 4.20 a vylepšené v jádru 5.2 Subsystém PSI (Pressure Stall Information), který umožňuje analyzovat informace o době čekání na příjem různých zdrojů (CPU, paměť, I/O). Tento subsystém umožňuje organizovat monitorování nedostatku paměti v rané fázi, určit zdroj problémů a ukončit nedůležité aplikace, aniž by to způsobilo efekty znatelné pro uživatele.

Zdroj: opennet.ru

Přidat komentář