Когда появлялись новости о новой 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.
RedHat считает, что планировщик CFQ показывает лучшую производительность на широком спектре оборудования и приложений.
Но так же пишется, что планировщик Deadline лучше в вопросах снижения задержки при одиночных всплесках I/O в реальном времени.
IBM
Мнение IBM об планировщиках Deadline и CFQ на HDD.
IBM считает, что Deadline отлично выглядит в многопотоковых сценариях и гарантирует время обслуживания.
Мнение монстров индустрии это всё хорошо, но не следует забывать, что их технологии это не наш домашний компьютер. Их заботы высоконагруженные системы и сервера, а наши заботы, чтобы не тупил браузер при закачке фильма через torrent или при расшаривании в DC++.
Можно конечно запустить скрипт, который переберёт планировщики на лету и выдаст пузомерку.
#!/bin/sh 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? Всё имеет значение!
Можно выставить, после тщательного тестирования, отдельный планировщик на отдельный диск. Например, noop для SSD диска
echo noop | sudo tee /sys/block/sda/queue/scheduler
и cfq для HDD.
echo cfq | sudo tee /sys/block/sdb/queue/scheduler
Надеюсь вы получите быстрый доступ диску и высокий I/O Wait обойдёт вас стороной.
Родственные статьи:
Установка Ubuntu Linux на SSD.
Ускорение файловой системы.
Ubuntu 12.10 альфа 3 - замена планировщика CFQ на Deadline по умолчанию.
Немає коментарів:
Дописати коментар