Назад | Перейти на главную страницу

Linux отключить кеш диска для одной команды

Наш сервер работает прилично, но при запуске резервного копирования или других процессов сканирования весь сервер забивается. Что-то вроде clamd будет запускать и сканировать множество файлов. Хотя мы ожидаем низкой производительности, это убивает наш кеш, и в конечном итоге мы не получаем систему, которая может что-либо делать.

Есть ли способ отключить кеширование диска / диска для одной команды? Идея заключалась бы в следующем:

# ./nocache clamd

Затем во время бега clamd он не будет обрабатывать загруженный кэш при чтении всех файлов в системе.

Это не совсем тот ответ, который вы ищете, но мы просто используем ionice для резервного копирования и сканирования, чтобы они не влияли на другие программы на сервере.

ionice -c3 clamd

Это должно быть реализовано в самой программе. Если clamd еще не делает этого, вы можете изменить clamd чтобы избежать излишне большого объема кеша, добавляя вызовы таких функций, как posix_fadvise(... POSIX_FADV_NOREUSE) или madvise(... MADV_DONTNEED) (если он отображает файлы в памяти). Однако он по-прежнему будет выталкивать метаданные файловой системы из кеша. С этим ничего не поделаешь.