Сегодня у нас очередная серия саги о планировщиках ввода-вывода. Потому что задолбало.
У меня есть небольшой 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
Грустно, на самом деле. Хотелось бы планировщик, выжимающий всё из накопителя, но не оказывающий влияния на уже висящие в оперативке приложения, и оперативно бросающийся читать данные запускаемого приложения. Вот почему такого до сих пор нет?