Řešení 1:
kswapd spravuje odkládací prostor v reakci na požadavky na paměť větší, než je fyzicky dostupné pro všechny procesy.
Je procesně agnostický, zajímá se pouze o to, jaké stránky jsou přístupné a kdy (je to samozřejmě složitější, ale abychom věci zjednodušili, můžeme to vidět i tímto způsobem).
Tedy skutečný otázka je "které procesy nejvíce zatěžují paměť, což způsobuje, že kswapd musí neustále stránkovat."
To je nejsnáze zodpovězeno pomocí 'top' a přepnutím do režimu třídění podle využití paměti.
Řešení 2:
Můžete to naskriptovat, ale můžete to udělat také přes top
Spusťte nahoru a stiskněte O následuje p poté zadejte
Nyní jsou všechny procesy seřazeny podle využití swapu a můžete vidět, které to používají
Řešení 3:
Pokud používáte Ubuntu 15.10 nebo vyšší, může to být ve skutečnosti důsledek chyby, zvláště pokud je váš systém virtuálním počítačem bez odkládacího oddílu (např. AWS EC2). Problém existuje u jiných distribucí, ale při psaní není jasné, zda stejná oprava funguje univerzálně.
Dočasné řešení:
sudo ln -s /dev/null /etc/udev/rules.d/40-vm-hotadd.rules
sudo reboot
Všimněte si, že tím zakážete přidávání RAM/CPU pro virtuální stroje Xen a Hyper-V.
Řešení 4:
Také se zdá, že je chyba v kswapd
někde, doufejme, že jen na starších jádrech.
Téměř každý den se kswapd náhodně rozčiluje na některých počítačích ve větším clusteru (avšak s neaktuálním jádrem). 100% CPU na obou procesech kswapd. Žádné další běžící procesy (kromě ssh shellu), spousta volné RAM (více než 700 MB) a vůbec žádný SWAP. Žádná výměna, ani výměna.
Zatím nic nevysvětluje, proč je konkrétní stroj zasažen a jiný nikoli. Zdá se, že to není úplně náhodné, protože obvykle zasáhne více než jeden stroj v krátkém časovém rozpětí. Vypadá to, že stroje, které jsou nečinné, stejně jako stroje, které jsou pod vysokým tlakem, jsou méně (!) pravděpodobně zasaženy tímto efektem. Musí tedy něco dělat s pracovní zátěží a zasáhne pouze v případě, že stroj není nečinný ani příliš vytížený.
Pokud se problém objeví, už nic nepomůže. Zabití všech procesů (které se nestaly nezničitelnými), odpojení všech souborových systémů, nic. kswapd
stále zůstává na 100% CPU. Mám podezření na nějaký spinlockový závod v jádrech SMP, ale je také pravděpodobné, že se mýlím.
Možná se podívejte na mou odpověď serverfault.com/questions/316995/#493257
Poznámky:
- Restartování postižených počítačů se často nezdaří, protože proces vypínání začíná někde viset.
- Neexistuje žádné přímé připojení k internetu. Cizí příčiny jsou nepravděpodobné.
- Zdá se, že to závisí na typu zátěže, kterou stroje z hlediska zátěže zpracovávají, protože máme stroje, které nikdy nebyly (zatím) ovlivněny.
- Omlouvám se, nemohu být konkrétnější, co děláme a proč.
- Ano, spekuluji. Protože je to dnes extrémně matoucí efekt.