Co může způsobit, že Linux tak nereaguje?
Rozhodně za to může přetížení dostupné paměti RAM, které způsobuje velké množství swapování. Pamatujte, že I/O s náhodným přístupem na vašem mechanickém HDD vyžaduje pohyb čtecí/zapisovací hlavy, která dokáže provést pouze přibližně 100 vyhledávání za sekundu.
Je obvyklé, že Linux jde úplně na oběd, pokud přetížíte RAM "příliš". Dále mám spinny disk a 8GB RAM. Měl jsem problémy s několika kusy softwaru s úniky paměti. Tj. jejich využití paměti v průběhu času neustále roste a nikdy se nezmenšuje, takže jediným způsobem, jak jej ovládat, by bylo zastavit software a poté jej restartovat. Na základě zkušeností, které jsem během toho měl, mě příliš nepřekvapuje, že slyším zpoždění přes deset minut, pokud generujete 3GB+ swapu.
Nemusíte to nutně vidět ve všech případech, kdy máte více než 3 GB swapu. Teorie říká, že klíčovým konceptem je mlácení. Na druhou stranu, pokud se pokoušíte přepínat mezi dvěma různými pracovními sadami a vyžaduje to výměnu 3 GB dovnitř a ven, při rychlosti 100 MB/s to zabere minimálně 60 sekund, i když lze vzor I/O dokonale optimalizovat. V praxi nebude I/O vzor zdaleka optimální.
Po potížích, které jsem s tím měl, jsem přeformátoval svůj odkládací prostor na 2 GB (několikrát menší než dříve), takže systém nebyl schopen swapovat tak hluboko. Můžete to udělat, aniž byste se museli potýkat se změnou velikosti oddílu, protože mkswap
přebírá volitelný parametr velikosti.
Hrubá rovnováha je mezi nedostatkem paměti a zabitím procesů a mezi tím, že se systém zasekne tak dlouho, že to stejně vzdáte a restartujete. Nevím, jestli není 4GB odkládací oddíl příliš velký; může to záviset na tom, co děláte. Důležité je dávat si pozor na to, kdy se disk začne míhat, kontrolovat využití paměti a podle toho reagovat.
Kontrola využití paměti u víceprocesových aplikací je obtížná. Chcete-li zobrazit využití paměti na proces bez dvojitého počítání sdílené paměti, můžete použít sudo atop -R
, stiskněte M a m a podívejte se do sloupce PSIZE. Můžete také použít smem
. smem -t -P firefox
zobrazí PSS všech vašich procesů firefox, za nímž bude následovat řádek s celkovým PSS. Toto je správný přístup k měření celkového využití paměti prohlížečů založených na Firefoxu nebo Chrome. (I když existují také funkce specifické pro prohlížeč pro zobrazení využití paměti, které zobrazí jednotlivé karty).
AFAIK, bloatware by neměl způsobit, že OS přestane reagovat, takže bych neuvažoval ani nepřijímal, že bloatware je hlavní příčinou problému
Nebude se vám to líbit, ale myslím, že bloatware ano je váš problém (i když si nejsem jistý, zda je problém v paměti nebo disku). Bohužel linuxové jádro je hrozné ve zvládání situací s vysokým tlakem paměti a je známo, že v podstatě vyžaduje restart, jakmile je paměť vyčerpána. Existují tři věci, které mě vedou k přesvědčení, že vaším problémem je vyčerpání zdrojů:
- Místo na disku root (/) a DATA je téměř plné. Nejsem si jistý, k čemu DATA používáte, ale již dříve jsem narazil na problémy s příliš malou změnou velikosti kořenového oddílu a můj systém přestal fungovat.
- Máte vysoký tlak paměti, což znamená, že vaše paměť RAM je téměř plná. Když se RAM začne zaplňovat, začnou se objevovat chyby stránek. K chybám stránek dochází, když jádro není schopno alokovat dostatek paměti pro proces a musí místo toho používat některé systémy mnohem pomaleji odkládací prostor. To nás přivádí k našemu poslednímu pozorování:
- Váš odkládací prostor je téměř plný. Ve vašem systému je zjevně vysoký tlak na paměť, protože RAM i swap jsou téměř plné.
V zásadě dejte tyto tři dohromady a váš systém nemá k dispozici dostatek zdrojů, aby mohl cokoliv dělat. Pokud jde o to, jak špatně Linux zvládá situace s nedostatkem paměti (ve srovnání například s jádrem NT ve Windows), zdá se, že to tak je. Další diskuzi najdete v tomto vláknu Reddit a jeho propojeném seznamu adresátů.
Pokud jde o to, jak vyřešit vaši situaci, řekl bych, že zvýšení velikosti swapu je dobrý nápad, ale protože máte málo místa na disku, bude to problém. Pokud váš server Minecraft nemá spoustu lidí, myslím, že by bylo bezpečné snížit jeho paměť na něco kolem 1024 m (osobně používám 1024 m s asi 10 lidmi a funguje to dobře). Také bych pro váš server Minecraft použil čep nebo papír, protože mají tendenci být výkonnější.
Hodně štěstí!
Jaký je výstup free -m
? Množství paměti RAM, které máte, je zbytečné, pokud nevíme, kolik používáte. To a mě zajímá, kolik odkládacího prostoru se využívá.
Přesto si myslím, že jste si na svou otázku odpověděl sám. Otevření „mnoho záložek“ ve vašem prohlížeči může rozhodně zpomalit váš systém, pokud je nikdy nezavíráte, protože budou i nadále spotřebovávat paměť; když váš systém zamrzne, kolik jich máte otevřených najednou?
To také dává smysl, pokud váš systém zamrzá z jiných úloh náročných na paměť, jako je „generování velmi velkého grafu z velmi složitého diagramu UML“. To absolutně zpomalí váš systém při generování grafu, takže to není překvapení.
Opravdu to zní, jako by se váš systém měl chovat takto. Buď to, nebo mi tu něco chybí.
Mimochodem, na statistikách HDD nezáleží, když dojde k tomu, že váš systém přestane reagovat, protože nedostatek paměti je téměř vždy na vině.