Tak ja bych pro zmenu rekl, ze v rade pripadu je nevhodne/nemozne swap mit. Treba u VM je swap diskutabilni, je otazka jestli chceme, aby nam ta VM zrala IO ve velkem. Dalsi pripad jsou ruzne embedded zarizeni (routery etc.), ktere maji storage povetsinou v read-only rezimu. Ano, na desktopu a zeleznem serveru neni typicky duvod nedat aspon maly swap, ale Linux ma podstatne sirsi vyuziti.
zajímalo by mě, jak správce může žjišťovat, co je špatně, když systém zpomalí tak, že se kurzor myši v GUI zastaví, Alt+Ctrl+Fx reaguje v řádu minut, a i když se objeví login prompt na jedné z virtuálních konzolí nebo při štěstí i přes ssh, tak do shellu se člověk po přihlášení nedostane ani po desítkách minut.
O tom je totiž IMHO původní příspěvek, že se Linux chová mizerně při nedostatku RAM. Hodně diskutujících výše potvrdilo to chování, které jsem teď popsal.
Přesně tak, při rychlém swapování na HDD je systém nepoužitelný. Sice běží, ale často se nedá ani vzdáleně přihlásit do shellu, protože má zahlcený diskové fronty. Přesně jak píšeš, stačilo aby třeba v takové situaci nějak změnil priority diskových operací ve prospěch nových procesů a šlo aspoň spustit shell s topem.
No při swapování to není zrovna ono, ale bez swapu je to ještě horší:
S povoleným swapem to do zaplnění cca 99 % RAM jede celkem plynule, pak se začne zuřivě odkládat na swap, a pak to možná pojede, pokud se odloží správné bloky paměti.
Bez swapu se to začne sekat ještě dřív. Nevím, co v takové situaci dělá systém, jestli nějak složitě hledá, co by mohl uvolnit, nebo jestli mazání cache má tak silný dopad. Pokud na to uživatel nezareaguje, killne mu to nějaký proces. V dom0 mi toho moc neběží, takže mi to s chutí killovalo Xka.
Mám to z chování prostě pocit, že i nevyužitý swap (klidně malý) má pozitivní dopad na plynulost systému, protože se Linux bez něj začne asi jinak chovat k RAMce. Nemám k tomu měření.
Mimochodem, swap v zram (komprimované blokové zařízení v RAM) mi přijde jako loterie. Asi jsou chvíle, kdy to pomůže, ale taky se může IMHO stát, že systém bude potřebovat více paměti a pokusí se odložit si něco nezkomprimovatelného. Pak bude hledat ještě navíc paměť pro zram, tak si zkusí odložit něco dalšího nezkomprimovatelného. Když jsem si to na starém telefonu vypnul, přišlo mi, že jsem se zbavil náhodných záseků, které mohly odpovídat zmíněné odkládací krizi.
Problém je, pokud tam ten SWAP je. Mám swap vytvořený, ale zakázaný. Mám 8GiB RAM a problém byl, že když docházela RAM, zahltilo to diskovou FIFO a stálo komplet všechno. Po stisku "Super" trvalo asi dvě minuty, než Gnome zareagoval a dalo se cokoliv pouštět. Ale ani pak nebylo vyhráno, při pokusu napsat "terminal" z toho bylo "ttttttttttteeeeeeerrrrrrrrmmmmlllll" - něco opakoval, něco ignoroval. Zadat "ps -a" a "kill 12345" je nadlidský úkol.
Bez SWAPu je to to samý, ale SSH funguje normálně, protože je furt komplet v RAM a nemusím si kvůli loginu vystát hodinovou frontu u SWAPu, než se v rámci žonglování náhodou dostane do RAMky - a standardně je to 2ms po timeoutu, takže se SWAPem je to na pevný nervy a několik pokusů o login. A pár kilo na CLI rutiny jako ls, ps,... se i bez SWAPu našlo vždycky. Tak proč si ošoupávat disky?
Jinak workaround: "sudo dnf remove chrome"