Odpověď Johna Nilssona na mou otázku může být užitečná pro vyčištění mezipaměti, abyste mohli otestovat, zda to souvisí s vaším problémem:
sync && echo 1 > /proc/sys/vm/drop_caches
I když hádám, že jediný skutečný rozdíl je 1 vs 3
Obsah /proc/meminfo říct, k čemu jádro používá RAM.
Můžete použít /proc/sys/vm/vfs_cache_pressure donutit jádro, aby znovu získalo paměť, která se používá pro cache související se souborovým systémem, líněji nebo dychtivěji.
Všimněte si, že vaše aplikace může mít prospěch z vyladění tohoto parametru pouze tehdy, pokud provádí malý nebo žádný diskový vstup/výstup.
Možná budete chtít zvýšit vfs_cache_pressure
a také nastavte swappiness
až 0
.
Díky tomu bude jádro obnovovat mezipaměť rychlejší a zároveň bude procesům při rozhodování o tom, co bude stránkováno, stejnou nebo větší zvýhodnění.
Můžete pouze chcete to udělat, pokud procesy, na kterých vám záleží, provádějí velmi málo diskových I/O.
Pokud se síťový I/O vázaný proces musí zaměnit, aby obsluhoval požadavky, je to problém a skutečným řešením je umístit jej na méně konkurenceschopný server.
S výchozím swappiness
nastavení, jádro téměř vždy upřednostňuje udržování mezipaměti související s FS ve skutečné paměti.
Pokud tedy zvýšíte tlak mezipaměti, nezapomeňte rovnoměrně upravit swappiness
.