@tehnazavr

Как уменьшить дисковый кеш на linux?

Здравствуйте. У меня в ноутбуке с linux установлено 16 гб ОЗУ. Когда запускаю несколько программ, редактор кода, 40 вкладок в хроме, то всё начинает тормозить и новые программы просто не могут открыться, и в сведениях об использовании памяти написано свободно около 150 - 200 мб. При этом кэш дисков никогда меньше чем 60% от общего количества не занимает, всегда только больше (смотрю это в там же).

Из той информации, что я нашел - дисковый кэш должен отдавать часть памяти каждый раз, когда программам памяти не хватает. Но повторюсь меньше 60% он не занимает, т.е. как я понял ничего он не отдаёт. Кто шарит, подскажите, я этот момент правильно понял?

Хочется уменьшить размер памяти, который дисковый кэш может занимать, но не могу найти инфы как это сделать. Установлен SSD диск, конечно не такой быстрый как RAM, но при таком раскладе лучше пусть с диска читает инфу, чем оперативку занимает.
  • Вопрос задан
  • 1660 просмотров
Пригласить эксперта
Ответы на вопрос 1
xotkot
@xotkot
хорошо есть и хорошо весьма
для начала убедитесь что проблема действительно в дисковом кеше(не swap), попробуйте его сбросить когда всё начинает тормозить:
sync && echo 1 > /proc/sys/vm/drop_caches
запуск от суперпользователя

еще с кешем можно сразу почистить inode и dentrie
sync && echo 3 > /proc/sys/vm/drop_caches
(данная команда включает в себя и команду приведенную выше)

п.с.
если проблема действительно окажется в дисковом кеше, то можно настроить систему так чтобы она более агрессивно его очищала установив параметр vfs_cache_pressure больше 100(по дефолту), например:
echo 500 > /proc/sys/vm/vfs_cache_pressure
(будет действовать до перезагрузки)
чтобы зафиксировать данный параметр в системе и после перезагрузки создайте, например, файл /etc/sysctl.d/60-sysctl.conf с таким содержимым:
vm.vfs_cache_pressure=500
затем перезагрузите систему или просто перезагрузите сам файл конфигурации:
sudo sysctl -p /etc/sysctl.d/60-sysctl.conf
Чтобы убедиться что изменения вступили в силу посмотрите вывод команды:
sudo sysctl -a | grep vfs_cache_pressure
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы