Я пересел с Windows на Ubuntu начиная с версии 12.04. С того момента я перепробовал много производных от Ubuntu дистрибутивов. И на всех при высокой активности I/O у меня появлялись подвисания системы. Например при скачивании/копировании файлов. А если же угораздило резко уйти в swap на пару гигабайтов(Java), то доходило до alt + sysrq + REISUB. Google рассказал про bug 12309, но на Bug Tracker он указан как закрытый https://bugzilla.kernel.org/show_bug.cgi?id=12309. Я забивал на это и просто избегал интенсивного swap (благо ОЗУ позволяет).
Но за этот месяц я поставил Lubuntu родственникам, у которых старенький компьютер c двумя гб ОЗУ и Xubuntu девушке, у которой также 2 гб ОЗУ на нетбуке. Проблемы со swap у них случаются часто, проявляющиеся просто: «тормозит!». Я пробовал разное: swappiness=10, апплеты на панельку для мониторинга swap(Если красненькое, то выключить программки!!), подключал zRam. Но это скорее не решение а костыли.
Но вот я недавно решил поэкспериментировать с планировщиками ввода/вывода. По умолчанию в Ubuntu 14.04 и производных (в тех которых я проверял) установлено три планировщика: Noop, Deadline, CFQ. Включен по дефолту Deadline. Я протестировал все три планировщика. Тестирование проводил по своему субъективному восприятию отзывчивости системы при одновременном копировании dd if=/dev/zero of=/tmp/test bs=1M count=1M
и выполнении обычных повседневных задачах(браузер, файловый менеджер, терминал...). В тестировании участвовали три кандидата:
- Linux Mint 17.03 - 4.4.0-13-generic, 4gb RAM;
- Xubuntu 14.04 - 3.16.0-67-generic, 2gb RAM;
- Lubuntu 14.04 - 3.19.0-56-generic, 2gb RAM;
На всех трех установлены традиционные жесткие диски.
Мои выводы:
Deadline - жуткие тормоза, Noop - тоже тормоза. А вот с включенным CFQ тормозов практически не было, работать было комфортно.
В интеренете я нашел много разнящихся мнених про эти алгоритмы. Но как показала моя практика, для Desktop намного лучше подходит CFQ. Родственники и девушка довольны.
Возникают вопросы. Почему разработчики Сanonical не установят по умолчанию CFQ для Desktop? При каких сценариях Deadline будет работать лучше, может быть на сервере?
cfq, hdd, io, scheduler, ubuntu