Когда появлялись новости о новой 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 с помощью копирования файлов или командой, и ваша система встаёт колом! Ничего нельзя сделать, только тупо ждать. Это странным образом пересекается с багом 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 считает, что планировщик CFQ показывает лучшую производительность на широком спектре оборудования и приложений. Но так же пишется, что планировщик Deadline лучше в вопросах снижения задержки при одиночных всплесках I/O в реальном времени.
IBM
IBM считает, что Deadline отлично выглядит в многопотоковых сценариях и гарантирует время обслуживания. Мнение монстров индустрии это всё хорошо, но не следует забывать, что их технологии это не наш домашний компьютер. Их заботы высоконагруженные системы и сервера, а наши заботы, чтобы не тупил браузер при закачке фильма через torrent или при расшаривании в DC++.
Можно, конечно, запустить скрипт, который переберёт планировщики на лету и выдаст пузомерку.
#!/bin/sh
# Почему deadline? 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 по умолчанию.
Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra 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. Сайт с контролем честности http://grand-asino.com/kontrol-chestnosti/.