У меня есть Thecus N8900 NAS, который представляет собой файловый сервер на базе Linux, предоставляющий файлы через NFS шести клиентам. По какой-то причине, которую служба поддержки Thecus еще не объяснила, она запускает скрипт, который проверяет /proc/meminfo каждые 60 секунд, и если дисковый кеш превышает 50% доступной оперативной памяти, они делают «echo 3 > /proc/sys/vm/drop_caches». ", чтобы сбросить кеш.
Если оставить в стороне вопрос о том, имеет ли это смысл, фактическая команда «echo 3 > /proc/sys/vm/drop_caches» может занять несколько часов, что мне кажется слишком долгим.
Большая проблема заключается в том, что когда это происходит, нагрузка на машину резко возрастает, как и использование диска, что приводит к обходу всего трафика NFS до тех пор, пока команда не завершится, после чего все снова начинает реагировать.
Сам NAS имеет 16 гиг ОЗУ, 7 дисков в конфигурации рейд6 (плюс горячий резерв), проблем с дисками вообще нет (по тестам S.M.A.R.T.).
Итак, вопрос: что может заставить команду drop_caches выполняться так долго?
sync
, которая делает то, что вы говорите (например, сбрасывает грязный кеш на диск) - person pqnet   schedule 06.08.2014/proc/sys/vm/drop_caches
говорит об обратном: Это неразрушающая операция и не будет освобождать грязные объекты.. - person pqnet   schedule 07.08.2014