Публикация описывает личный опыт применения изложенных на форуме рекомендаций участника с ником slant под заголовком "Mint 18 c ядром 4.13+ – переходим на bfq (улучшаем отзывчивость интерфейса при тяжелых дисковых операциях)". Теоретическое обоснование заимствовано из указанного выше источника. Некоторые речевые обороты изменены.
Представьте, что у вас две программы хотят одновременно читать или писать на диск. Какой из них дать преимущество? А что будет в это время делать вторая? За эти вопросы в системе отвечает так называемый планировщик дисковых операций (ввода-вывода) – подробности.
В Linux Mint по умолчанию используется планировщик cfq, доступны также deadline и none. В принципе, cfq справляется, но бывают случаи, когда система всё же "встаёт колом" – например при копировании с накопителей "флэш", или по гигабитной сети, особенно если диски hdd и не слишком "шустрые".
С целью решения этой проблемы создан планировщик bfq, который способствует гарантированному доступу к диска каждого из процессов, осуществляя управление ресурсами в очереди запросов ввода-вывода.
То есть при интенсивных дисковых операциях "тормоза" в графическом окружении должны уйти в прошлое, что может способствовать повышению скорости запуска программ и снижению нагрузки на жёсткий диск. Основное преимущество использования этого планировщика проявляется в сценарии "параллельный доступ к множеству мелких файлов на hdd". Для SSD, по словам авторов алгоритма, его применение также будет эффективно.
В настройках в Linux Mint и Ubuntu всё связанное с этим планировщиком полностью выключено. А вот пользователи Manjaro наслаждаются его возможностями "из коробки". Как пишет автор, "будем исправлять несправедливость".
Настройка состоит из выполнения ряда последовательных команд, выполняемых через терминал, а также внесения изменений в некоторые конфигурационные файлы.
Внимание. Для осуществления настройки необходимо наличие ядра 4.13 или новее. Для определения действующей версии ядра запустите uname -r
В процессе осуществления настройки потребуется 2 перезагрузки системы.
Примечание. По тексту для редактирования конфигурационных файлов указана команда sudo xed, так как экспериментальная проверка произведена на Linux Mint. В Ubuntu тестового редактора xed не существует и вместо него используется gedit. Поэтому пользователям Ubuntu вместо sudo xed следует вводить sudo gedit. По устоявшейся ещё с ранней Ubuntu привычке в своей системе всегда ввожу sudo gedit, а для сопоставления команде gedit команды xed был использован материал этой публикации.
1. Включить в ядре поддержку bfq, запустив sudo xed /etc/default/grub и добавив в строку GRUB_CMDLINE_LINUX_DEFAULT параметр scsi_mod.use_blk_mq=1
Например,
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash scsi_mod.use_blk_mq=1"
2. sudo update-grub && shutdown -r now
3. sudo modprobe bfq && sudo xed /etc/udev/rules.d/60-scheduler.rules
Так как изначально файл 60-scheduler.rules в системе отсутствует, то он будет создан и передан на редактирование в текстовый редактор. В окне редактора вписать:
ACTION=="add|change", KERNEL=="sd*[!0-9]|sr*", ATTR{queue/scheduler}="bfq"
Сохранить изменения.
4. sudo udevadm control --reload && sudo udevadm trigger
5. sudo xed /etc/initramfs-tools/modules
Вписать строку bfq и сохранить.
Содержание файла должно быть:
# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
bfq
6. sudo update-initramfs -u && shutdown -r now
7. После перезагрузки выполнить команду cat /sys/block/sda/queue/scheduler
Должно быть выдано: [bfq] none
Отменить изменения
1) sudo rm /etc/udev/rules.d/60-scheduler.rules
2) Убрать из /etc/default/grub параметр scsi_mod.use_blk_mq=1, т.е. вернуть к виду, например, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
После этого обновить загрузчик sudo update-grub
Представьте, что у вас две программы хотят одновременно читать или писать на диск. Какой из них дать преимущество? А что будет в это время делать вторая? За эти вопросы в системе отвечает так называемый планировщик дисковых операций (ввода-вывода) – подробности.
В Linux Mint по умолчанию используется планировщик cfq, доступны также deadline и none. В принципе, cfq справляется, но бывают случаи, когда система всё же "встаёт колом" – например при копировании с накопителей "флэш", или по гигабитной сети, особенно если диски hdd и не слишком "шустрые".
С целью решения этой проблемы создан планировщик bfq, который способствует гарантированному доступу к диска каждого из процессов, осуществляя управление ресурсами в очереди запросов ввода-вывода.
То есть при интенсивных дисковых операциях "тормоза" в графическом окружении должны уйти в прошлое, что может способствовать повышению скорости запуска программ и снижению нагрузки на жёсткий диск. Основное преимущество использования этого планировщика проявляется в сценарии "параллельный доступ к множеству мелких файлов на hdd". Для SSD, по словам авторов алгоритма, его применение также будет эффективно.
В настройках в Linux Mint и Ubuntu всё связанное с этим планировщиком полностью выключено. А вот пользователи Manjaro наслаждаются его возможностями "из коробки". Как пишет автор, "будем исправлять несправедливость".
Настройка состоит из выполнения ряда последовательных команд, выполняемых через терминал, а также внесения изменений в некоторые конфигурационные файлы.
Внимание. Для осуществления настройки необходимо наличие ядра 4.13 или новее. Для определения действующей версии ядра запустите uname -r
В процессе осуществления настройки потребуется 2 перезагрузки системы.
Примечание. По тексту для редактирования конфигурационных файлов указана команда sudo xed, так как экспериментальная проверка произведена на Linux Mint. В Ubuntu тестового редактора xed не существует и вместо него используется gedit. Поэтому пользователям Ubuntu вместо sudo xed следует вводить sudo gedit. По устоявшейся ещё с ранней Ubuntu привычке в своей системе всегда ввожу sudo gedit, а для сопоставления команде gedit команды xed был использован материал этой публикации.
1. Включить в ядре поддержку bfq, запустив sudo xed /etc/default/grub и добавив в строку GRUB_CMDLINE_LINUX_DEFAULT параметр scsi_mod.use_blk_mq=1
Например,
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash scsi_mod.use_blk_mq=1"
2. sudo update-grub && shutdown -r now
3. sudo modprobe bfq && sudo xed /etc/udev/rules.d/60-scheduler.rules
Так как изначально файл 60-scheduler.rules в системе отсутствует, то он будет создан и передан на редактирование в текстовый редактор. В окне редактора вписать:
ACTION=="add|change", KERNEL=="sd*[!0-9]|sr*", ATTR{queue/scheduler}="bfq"
Сохранить изменения.
4. sudo udevadm control --reload && sudo udevadm trigger
5. sudo xed /etc/initramfs-tools/modules
Вписать строку bfq и сохранить.
Содержание файла должно быть:
# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
bfq
6. sudo update-initramfs -u && shutdown -r now
7. После перезагрузки выполнить команду cat /sys/block/sda/queue/scheduler
Должно быть выдано: [bfq] none
Отменить изменения
1) sudo rm /etc/udev/rules.d/60-scheduler.rules
2) Убрать из /etc/default/grub параметр scsi_mod.use_blk_mq=1, т.е. вернуть к виду, например, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
После этого обновить загрузчик sudo update-grub
Комментариев нет:
Отправить комментарий