Авторские статьи об OpenSource

Почему в Ubuntu планировщиком стал Deadline.


Когда появлялись новости о новой Ubuntu 12.10, многие пропустили момент, что планировщиком по умолчанию стал Deadline. Царствующий CFQ был низложен. Вам не интересно почему?

Вы только вдумайтесь в смысл и в перевод аббревиатуры CFQ (Completely Fair Queuing) - полностью справедливая очередь. CFQ нахваливали в статьях по всему Интернету.

CFQ равномерно распределяет доступ к диску для всех процессов. Дескать, можно копировать огромные файлы и компилировать сложный проект, но GUI тормозить не будет. Всем будет хорошо и всем хватит места под солнцем.

И что видим в реале? Оказывается был уже переход на Deadline по умолчанию в истории Убунту. Это был далёкий 2009 год и ядро было 2.6.30. Разгорелся спор вокруг бага 381300. Итогом стало временный переход на Deadline.

Set default I/O scheduler to Deadline
    CFQ seems to have some load related problems which are often exacerbated by sreadahead.
    - LP: #381300

Вы загружаете свои диски мощным I/O с помощью копирования файлов или командой dd if=/dev/zero of=/dev/sdx и ваша система встаёт колом! Ничего нельзя сделать, только тупо ждать. Это странным образом пересекается с багом 12309, который является бичём пользователей линукс, которым "посчастливилось" с ним встретится. В обсуждении проблемы выяснилось, что это не проблема драйверов, а проблема именно CFQ. Стоило сменить планировщик I/O с CFQ на Deadline как проблема исчезала.

Более того! Пользователи тестировали скорость работы устройств под различными планировщиками и отписывали, что Deadline или NOOP на десктоп системах лучше, чем CFQ! Получается, что благородная цель CFQ переупорядочить очередь диска, чтобы ему меньше приходилось метаться за данными и более справедливое разделение доступа, идёт прахом?

К этому времени появилась технология NCQ (Native Command Queuing — аппаратная установка очередности команд). То есть диск сам хотел бы разобраться со своей очередью к нему. И тут у аппаратной NCQ и программной CFQ нет соперничества?

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

Возможно, всё это вынуждает в очередной раз Canonical сделать переход на Deadline. Но смущает, тот факт, что первый переход был скорее из-за проблем в CFQ нежели из-за лучшей скорости Deadline. Поэтому не хотелось бы новостей об возврате CFQ по умолчанию, пока в нём не устранят те проблемы, которые приводят к сильному "I/O wait" на определённом оборудовании.

А вот мнение монстров индустрии об планировщиках.

RedHat

Мнение RedHat об планировщиках Deadline и CFQ на HDD.

Deadline против CFQ по мнению RedHat

RedHat считает, что планировщик CFQ показывает лучшую производительность на широком спектре оборудования и приложений. Но так же пишется, что планировщик Deadline лучше в вопросах снижения задержки при одиночных всплесках I/O в реальном времени.

IBM

Мнение IBM об планировщиках Deadline и CFQ на HDD.

Deadline против CFQ по мнению IBM

IBM считает, что Deadline отлично выглядит в многопотоковых сценариях и гарантирует время обслуживания. Мнение монстров индустрии это всё хорошо, но не следует забывать, что их технологии это не наш домашний компьютер. Их заботы высоконагруженные системы и сервера, а наши заботы, чтобы не тупил браузер при закачке фильма через torrent или при расшаривании в DC++.

Можно конечно запустить скрипт, который переберёт планировщики на лету и выдаст пузомерку.

#!/bin/sh
# Почему deadline? http://vasilisc.com/why-deadline-ubuntu
sudo clear
DISC="sdb"; \
cat /sys/block/$DISC/queue/scheduler; \
for T in noop deadline cfq; do \
     echo $T | sudo tee /sys/block/$DISC/queue/scheduler; \
     cat /sys/block/$DISC/queue/scheduler; \
     sync; \
     echo 3 | sudo tee /proc/sys/vm/drop_caches; \
     sudo /sbin/hdparm -tT /dev/$DISC;\
     echo "----"; \
     sleep 10; \
done

Но мне кажется, что лучшим вариантом будет установка планировщика на лету на сеанс. Включили компьютер, выставили планировщик и тестируйте своими личными задачами и программами. Нравится ли как качает торрент клиент и открываются в файловом менеджере ваши фотографии на редактирование в Gimp?

Составьте своё субъективное мнение и тогда можно выставить планировщик-победитель в качестве дефолтного в /etc/default/grub. Ваш победитель может быть одним из: noop, deadline, cfq. В файле /etc/default/grub добавьте elevator=имя_вашего_планировщика и получите строку, типа GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=имя_вашего_планировщика". Не забудьте sudo update-grub.

Только помните, что у вас может быть смешение дисков - SSD или HDD. А может вы используете программный RAID? Всё имеет значение!

Можно выставить после тщательного тестирования отдельный планировщик на отдельный диск. Надеюсь вы получите быстрый доступ диску и высокий I/O Wait обойдёт вас стороной.

Родственные статьи:
Установка Ubuntu Linux на SSD.
Ускорение файловой системы.
Ubuntu 12.10 альфа 3 - замена планировщика CFQ на Deadline по умолчанию.

    Twitter   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта

Лучшее на сайте:

1С под Linux.   Ускорение Ubuntu.   21 пример iptables.   Цикл статей о Ceph.   Убунту в дикой среде.   Ubuntu Linux на SSD.   Ubuntu для блондинок.   Поддержка железа в Linux.   BTSync на службе у админа.   Андроид программы в Ubuntu.   Прокидывание портов для p2p.   Анти СПАМ в Postfix.  



Круги Гугл Ада.


Группа поддержки