Jak wyczyścić pamięci podręczne używane przez jądro Linuksa
Chcę zmusić jądro Linuksa do przydzielenia większej ilości pamięci do aplikacji po tym, jak pamięć podręczna zacznie zajmować zbyt dużo pamięci (co widać po wyjściu 'free').
I ' ve run
sudo sync; sudo sysctl -w vm.drop_caches=3; free
(aby uwolnić zarówno dysk dentry/iode cache jak i page cache) i widzę, że tylko około połowa używanego cache została uwolniona-reszta pozostaje. Jak mogę stwierdzić, co zajmuje resztę pamięci podręcznej i wymusić jej uwolnienie?
3 answers
Będziesz chciał zwiększyć vfs_cache_pressure, jak również ustawić swapiness na 0. To sprawi, że jądro odzyska pamięć podręczną szybciej, dając procesom równą lub większą przychylność przy podejmowaniu decyzji o tym, co zostanie wycofane. Chcesz to zrobić, jeśli procesy, na których Ci zależy, robią bardzo mało We/Wy dysków. jeśli proces związany z We/Wy sieci musi się zamienić, aby obsłużyć żądania, jest to problem, a prawdziwym rozwiązaniem jest umieszczenie go na mniej konkurencyjnym serwerze.
Z domyślnym ustawieniem swapiness, jądro prawie zawsze będzie sprzyjać przechowywaniu pamięci podręcznej związanej z FS w prawdziwej pamięci. Więc jeśli zwiększysz ciśnienie pamięci podręcznej, pamiętaj, aby również dostosować swapiness.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-25 16:13:36
Zawartość /proc/meminfo informuje do czego jądro używa pamięci RAM.
Możesz użyć /proc/sys/vm/vfs_cache_pressure , aby zmusić jądro do odzyskania pamięci używanej w pamięci podręcznej związanej z systemem plików bardziej leniwie lub chętnie.
Zauważ, że Twoja aplikacja może skorzystać z dostrajania tego parametru tylko wtedy, gdy nie wykonuje lub nie wykonuje operacji wejścia/Wyjścia dysku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-01 21:24:44
Możesz znaleźć odpowiedź Johna Nilssona na moje pytanie przydatna do czyszczenia pamięci podręcznej w celu sprawdzenia, czy jest to związane z Twoim problemem:
sync && echo 1 > /proc/sys/vm/drop_caches
Chociaż domyślam się, że jedyna prawdziwa różnica to 1 vs 3
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:32:59