LINUX.ORG.RU

Они - планировщики

 , , , ,


0

4

Сегодня у нас очередная серия саги о планировщиках ввода-вывода. Потому что задолбало.

У меня есть небольшой SSD под систему и свап, и три HDD под всё остальное. На HDD я использую CFQ (потому что там пофиг что использовать, влияния на работу - никакого), на SSD пробовал Noop, CFQ, BFQ и сейчас вот включил Deadline. Краткие итоги:

  • Noop: этот педантичный тупица вроде бы самый быстрый планировщик с точки зрения выполнения операций I/O, но с точки зрения пользуемости он мало пригоден - когда на SSD пишется или читается большой объём данных (от нескольких сотен мегабайт, например, начинается выгрузка страниц в свап при запуске тяжёлого приложения), система встаёт в нелепой позе. Когда чтение-запись заканчивается, система продолжает работать как ни в чём ни бывало. Зато с этим планировщиком система загружается быстрее, чем с остальными, прямо невооружённым глазом заметно. Оценка: 2
  • CFQ: истинно либеральный планировщик, стремится угодить всем. Производительность вполне на уровне, но порой всё же подкидывает неприятные тормоза при массированном I/O. Кстати, включение в ядре шедулер-патча улучшает пользуемость этого планировщика. Система с ним загружается довольно быстро. Оценка: 4
  • BFQ: просто кусок говна. Во-первых, читает-записывает с намного меньшей скоростью, чем остальные, во-вторых - ни на грамм не увеличивает отзывчивость. Если во время копирования большого файла, или во время распаковки сорсов ядра, или во время сброса в свап попытаться запустить какое-нибудь приложение (FF, Dolphin, KSysGuard - без разницы), то секунды через 3-4 появится пустая рамка, потом ещё через десяток секунд отрисуется содержимое, а потом приложение просто повиснет, пока I/O не закончится. С этим поделием система грузилась намного дольше обычного, а KDE после логина тупил ещё минуты полторы, подгружая постоянно запущенные приложения (Amarok, KTorrent, KGet, KMail и т.д.). Понятно, почему это не берут в апстрим. Оценка: -0
  • Deadline: насчёт этого диктатора ничего определённого сказать не могу, т.к. только включил его и прогнал лишь один тест - при копировании фильма на SSD пробовал запустить FF, LO, Dolphin, KSysGuard. Так вот, скорость копирования - на уровне CFQ, приложения запускаются намного медленней, но фризов не наблюдается. Оставил его пока дефолтным, буду смотреть дальше (особенно интересует его поведение при работающих виртуалках). Система загружается так же быстро, что и с CFQ. Оценка на данный момент: 4

Грустно, на самом деле. Хотелось бы планировщик, выжимающий всё из накопителя, но не оказывающий влияния на уже висящие в оперативке приложения, и оперативно бросающийся читать данные запускаемого приложения. Вот почему такого до сих пор нет?

начинается выгрузка страниц в свап при запуске тяжёлого приложения

Эм. Не хочу тебя разочаровывать, но наличие swap-а - это борода в Linux. Потому что словить 12309 - как нефиг делать.

Оперативки совсем мало?

И насчет deadline - этот товарищ больше для серверов. На десктопах: Noop или CFQ - оптимальный выбор в 90% случаях. В остальных 10% как не странно, но BFQ рулит. Сам наблюдал пару раз на некоторых конфигурациях. Но у себя на машинах нигде его не держу.

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Оперативки 8, но её иногда не хватает, ибо ZFS, виртуалки, все дела.

Если к двум планкам одного производителя добавить две планки другого - это сильно скажется на скорости и стабильности работы?

fragmentor ()
Ответ на: комментарий от Pinkbyte

И насчет deadline - этот товарищ больше для серверов

А в убунте он по дефолту :)

fragmentor ()
Ответ на: комментарий от fragmentor

Оперативки 8, но её иногда не хватает, ибо ZFS, виртуалки, все дела.

Та же ситуация - 8 гигов, ZFS для чрутов, виртуалки. Иногда не хватает, жалею о сгоревшей плашке на 4 гига(когда было 12 - всё было просто шикарно). Надо выползти в магазин за новой, благо отпуск начался :-)

Если к двум планкам одного производителя добавить две планки другого - это сильно скажется на скорости и стабильности работы?

Сейчас производитель - это не главное. Главное чтоб частота была одинаковая(иначе планки с частотой выше будут работать на пониженной). Ну и двух-, трех- канальность чтоб соблюдалась, да...

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от fragmentor

в убунте он по дефолту

[тут был комментарий про то, что я думаю об убунту, но его потерла моя модераторская сущность]

А если без флейма: там ЕМНИП все планировщики в ядре есть, так что кому надо - тот выберет нужный через параметр ядра.

Pinkbyte ★★★★★ ()

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

Есть в ванили.

Не благодари.

drBatty ★★ ()
Ответ на: комментарий от fragmentor

Если к двум планкам одного производителя добавить две планки другого - это сильно скажется на скорости и стабильности работы?

скорее всего нет. Я несколько раз добавлял так. Хотя, говорят бывают и факапы.

drBatty ★★ ()

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

ilovewindows ★★★★★ ()

Использую deadline. Система полностью на zfs (за исключением /boot), ssd, рамы - 16, свопа нет. Вроде всё нормально.

stage3 ★★ ()
Ответ на: комментарий от Pinkbyte

Потому что словить 12309 - как нефиг делать.

4.2. Прошли те времена, по крайней мере для тех, кто ядро обновляет.

Kroz ★★★★★ ()

Упоролся? BFQ хорош для отзывчивости на HDD. SSD — другая история.

tyakos ★★★ ()

Есть ещё NCQ. Это вроде встроенный в контроллеры планировщик. Как его включить не помню, вроде нужно чтобы загрузался соответствующий модуль и выбрать в качестве планировщика noop.

firestarter ★★★☆ ()
Ответ на: комментарий от Kroz

А что за ядро нужно? Fedora 18 и Ubuntu 13.04, 12309 на месте.

ostin ★★★★★ ()

оффтоп, можете потереть

Что у тебя с аватаркой?

anonymous ()
Ответ на: комментарий от ostin

А что за ядро нужно?

У меня с каким-то 3.x ушло. Сейчас 3.6.2, 12309 нет.

Kroz ★★★★★ ()

своп на ссд? да ты извращенец. Алсо вменяемые люди вместe с noop включают AHCI

darkenshvein ★★★★★ ()

Тестировал «на глаз» или какие тесты запускал? (iozone например)

x905 ★★★★★ ()
Ответ на: комментарий от fragmentor

В репах убунты есть, демон -динамически своп выделяет в файлах.

ilovewindows ★★★★★ ()

Всё, что ты написал насчёт BFQ - неправда для моего ноута и рабочей станции с SSDниками, по сравнению с CFQ, «на глаз» - реально отзывчивее.

Ну а описанные тобою проблемы, я на этих машинах никогда не наблюдал и не наблюдаю.

science ★★☆ ()
Ответ на: комментарий от Kroz

Прошли те времена, по крайней мере для тех, кто ядро обновляет.

Ядро 3.10 + мать с IDE-винтом и компиляция = заикающаяся музыка и дергающийся курсор мыши, при этом вся система стоит в позе речного омара. «Вылечилось» переходом на SATA, то есть банально - увеличением максимальной скорости I/O. Если ты считаешь подобное поведение нормальным - у меня для тебя плохие новости.

И магической опции а-ля переключатель «отзывчивость»-«производительность», работающей в 100% случаях в ядре нет. И вряд ли будет. Как я уже говорил, кому-то помогает смена планировщика ввода-вывода. Мне вот - не помогло

Pinkbyte ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.