Дмитрий (dap_darkness) wrote,
Дмитрий
dap_darkness

Categories:
  • Mood:
  • Music:

Выбор планировщика ввода-вывода

При наличии падения производительности во время интенсивных дисковых операций, можно попробовать подобрать планировщик, подходящий лучше, чем стандартный. Чтобы посмотреть доступные планировщики и активный для sda, выполните cat /sys/block/sda/queue/scheduler. Я обнаружил следущие планировщики:

  • Noop — простейший планировщик, работающий по принципу FIFO. Переупорядочения нет, слиянию могут подлежать только запросы, находящиеся рядом в очереди. Хорошо подходит для устройств со случайным доступом, вроде Flash памяти.
  • Deadline — планировщик, который ставит больший приоритет запросам на чтение, нежели запросам на запись. Запросы переупорядочиваются, но при этом время обработки запроса не должно превышать заданные пределы. Лучше всего подходит для организации баз данных.
  • CFQ — Completely Fair Queuing. Цель этого планировщика — честное распределения времени доступа к ресурсу всех инициаторов запросов. CFQ может быть настроен для уравнивания процессов, групп процессов, пользователей. Переупорядочения запросов для минимизации перемещения считывающей головки жесткого диска в этом планировщике нет.

Смена планировщика на лету (выбор планировщика noop для устройства sdc):

sudo -i
echo noop > /sys/block/sdc/queue/scheduler

Фиксация настройки планировщика: добавляем строку GRUB_CMDLINE_LINUX_DEFAULT="elevator=deadline" в /etc/default/grub, обновляем конфигурацию: sudo update-grub.

Вариант выбора оптимального планировщика. Скрипт перебирает планировщики при тестировании и не восстанавливает изначально установленный. Затем следуют секции тестирования. Наиболее оптимальные результат выбираем вручную, он соответствует наибольшей скорости чтения мегабайт в секунду. Скрипт можно скачать в виде файла. Для тестирования других дисков вбиваем их после DISC= и запускаем.

DISC="sda";
cat /sys/block/$DISC/queue/scheduler;
for T in noop deadline cfq; do
    echo $T > /sys/block/$DISC/queue/scheduler;
    cat /sys/block/$DISC/queue/scheduler;
    sync && /sbin/hdparm -tT /dev/$DISC && echo "----";
    sleep 15;
done

Источники на хабре 1, 2.

Tags: консоль, линукс, оптимизация, флешки
Subscribe

  • vivaldi-snapshot-1.13.1008

    По какой-то причине сабж запускается с замороженным gui, если не удалить из конфига файлы и папку safe browsing. Posted via LeechCraft Blogique.

  • open Build Service и gcc не по умолчанию

    В дистрибутивах линукс поставляются сразу несколько разных компиляторов: 99 % вы найдёте gcc, почти наверняка также и (llvm-)clang, реже мейтейнеры…

  • Битва за место и время: nut, systemd, journald

    Поскольку у моего настольного компьютера главным тормозом загрузки является nut, я решил поэксперементировать и перенести его потроха на один…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment