При наличии падения производительности во время интенсивных дисковых операций, можно попробовать подобрать планировщик, подходящий лучше, чем стандартный. Чтобы посмотреть доступные планировщики и активный для sda, выполните cat /sys/block/sda/queue/scheduler. Я обнаружил следущие планировщики:
- Noop — простейший планировщик, работающий по принципу FIFO. Переупорядочения нет, слиянию могут подлежать только запросы, находящиеся рядом в очереди. Хорошо подходит для устройств со случайным доступом, вроде Flash памяти.
- Deadline — планировщик, который ставит больший приоритет запросам на чтение, нежели запросам на запись. Запросы переупорядочиваются, но при этом время обработки запроса не должно превышать заданные пределы. Лучше всего подходит для организации баз данных.
- CFQ — Completely Fair Queuing. Цель этого планировщика — честное распределения времени доступа к ресурсу всех инициаторов запросов. CFQ может быть настроен для уравнивания процессов, групп процессов, пользователей. Переупорядочения запросов для минимизации перемещения считывающей головки жесткого диска в этом планировщике нет.
Смена планировщика на лету (выбор планировщика noop для устройства sdc):
Фиксация настройки планировщика: добавляем строку GRUB_CMDLINE_LINUX_DEFAULT="elevator=deadline" в /etc/default/grub, обновляем конфигурацию: sudo update-grub.
Вариант выбора оптимального планировщика. Скрипт перебирает планировщики при тестировании и не восстанавливает изначально установленный. Затем следуют секции тестирования. Наиболее оптимальные результат выбираем вручную, он соответствует наибольшей скорости чтения мегабайт в секунду. Скрипт можно скачать в виде файла. Для тестирования других дисков вбиваем их после DISC= и запускаем.