Предложен простой способ разогнать Ubuntu в 2-9 раз
Программисты Canonical нашли в ядре Linux фундаментальный изъян, сказывающийся самым серьезным образом на производительности операционной системы. Устранение изъяна позволяет уже прямо сегодня любому пользователю ускорить работу Ubuntu в 2-9 раз всего одной командой из терминала.
Суть проблемы
Как известно, в каждую операционную систему встроен генератор ПСЧ. Алгоритмы генерации разные, но всегда действует правило: чем выше требования к качеству последовательности, тем выше нагрузка на центральный процессор и тем больше требуется оперативной памяти. Генератор ПСЧ Windows генерирует последовательность с относительно низким показателем энтропии. Этим объясняется легкость распространения вирусов в этой операционной системе, зато Windows работает заметно быстрее Linux. Генератор в Linux качественный, что делает Linux менее восприимчивым к вредоносному ПО, однако и затраты вычислительных ресурсов значительно выше, что приводит к замедлению работы компьютера.
Потенциал для ускорения
В декабре прошлого года фирма Canonical наняла высококлассных специалистов по realtime-вычислениям. Они должны были проверить ключевые точки ядра Linux, которые могли влиять на производительность. Первоначально эта задача была связана с желанием руководства фирмы сделать мобильную версию Ubuntu более отзывчивой путем снижения латентности ядра, однако очень скоро специалисты нашли изъян в проектировании, который влиял на общую производительность Linux на любом устройстве. Как оказалось, в генераторе ПСЧ допущена ошибка из-за которой вместо 100 итераций при вычислении хэш-функции MD5 компьютер выполнял 100000 итераций, то есть в 1000 раз больше. Отсюда и возникает потенциал для разгона. Можно искусственно сократить количество циклов, разгрузить CPU и оперативную память и получить существенный прирост производительности.
Решение проблемы
Хотя на первый взгляд может показаться, что для решения проблемы достаточно просто выпустить патч к ядру, на самом деле это не так. Дело в том, что все написанные под Linux программы не ожидают от генератора ПСЧ аномальной тактовой частоты. Другими словами, внеся изменения в ядро, разработчики выпустили бы версию Ubuntu, которая не смогла бы работать стабильно до тех пор, пока разработчики софта, входящего в состав Ubuntu, не адаптировали бы свои программы под новый алгоритм генерации ПСЧ. Легко догадаться, что на это могли бы уйти годы.
И тогда программные инженеры Canonical нашли элегантное решение, которое уже многие эксперты по ядру Linux назвали самым значительным вкладом Canonical в Open Source за всю историю существования этой компании.
Суть проста: вместо исправления старого генератора, ПСЧ-последовательности просто перенаправляются от источника (/dev/urandom) в так называемую черную дыру (/dev/null), а отдельный процесс генерирует ПСЧ по исправленному алгоритму, сохраняет полученные данные в виде таблицы и выдает их через привычный интерфейс /dev/urandom. Таким образом, не только достигается совместимость со всеми написанными ранее программами, но и кэшируются сами данные, что дает дополнительный прирост производительности.
Как ускорить Ubuntu
Учитывая общественную значимость открытия, специальный программный инструмент для ускорения был распространен на все компьютеры с Ubuntu через систему обновлений. Дополнительных действий со стороны пользователя для установки не требуется. Но проверить доступность программы все же следует. Наберите в терминале:
xz
Если на экране появится строка "Команда не найдена" - вам не повезло. Вероятно, ваш компьютер устарел и аппаратно не совместим с новым алгоритмом генерации ПСЧ. Если все в порядке, программа напишет "Compressed data cannot be written to a terminal". То есть, программа ускорения xz попыталась сгенерировать и сжать поток ПСЧ, но выводить его просто на терминал не имело смысла, поэтому программа завершилась. Используем xz для реальной обработки данных.
Следует прежде отметить, что xz понимает всего одну опцию - коэффициент желаемого ускорения. Это значение следует задавать от 1 до 9: 1 - ничего не ускорять, только проверить совместимость; 2 - двукратный рост по скорости; 9 - максимальное ускорение (в девять раз по сравнению со штатной производительностью). Специалисты Canonical не рекомендуют использовать коэффициенты выше 6, так как хотя ваш компьютер и приблизится по производительности к младшим моделям суперкомпьютеров, потребление электричества процессором вырастет непропорционально и неприемлемо высоко и вы будете неприятно удивлены цифрой в квитанции за электричество. Ускорение Ubuntu в 5-6 раз вполне достаточно для любых задач. Итак, приступим:
cat /dev/urandom | xz -5 > /dev/null
Даже новичок в Ubuntu способен понять смысл этой операции: берется поток ПСЧ из файла /dev/urandom и перенаправляется в /dev/null. Другими словами, фактически отключается штатный генератор ПСЧ, причем таким образом, чтобы не нарушить совместимость с остальными программами, берущими данные из /dev/urandom. Далее xz генерирует ПСЧ по исправленному алгоритму и заполняет кэш с данными в оперативной памяти. Чтобы добиться еще более впечатляющего ускорения, данные сжимаются (в пять раз), чтобы освободить ОЗУ для других программ.
Следует также отметить, что на генерацию кеша потребуется время. Зависимость времени от желаемого ускорения экспоненциальная, что следует обязательно учитывать. Если вы планируете максимально разогнать компьютер, запаситесь терпением. Если же программа xz выполняется неприемлемо долго, попробуйте снизить коэффициент ускорения и попробовать вновь. Данная процедура выполняется только один раз и в дальнейшем данные будут браться напрямую из сгенерированного кэша.
Когда xz появится в других дистрибутивах?
Скорее всего, что никогда. Юристы Canonical успели подать патентную заявку и теперь xz является интеллектуальной собственностью компании. Вероятно, Марк Шаттлворт решил использовать этот способ ускорения Linux как мощное конкурентное преимущество Ubuntu перед другими дистрибутивами Linux и даже перед Windows. Учитывая ту пользу, которую приносит использование xz, аналитики приходят к выводу, что планы главы Canonical скорее всего осуществятся и уже до конца этого года мы увидим крупнейшую миграцию на Ubuntu за всю историю существования дистрибутива.
Комментарии
pomodor
1 апреля, 2015 - 13:00
В кои-то веки Каноникал сделал что-то действительно полезное. Ускорение (да еще в разы) — это вам не шоппинг-оболочки с дилдами клепать. Не думал, что когда-нибудь уйду с Debian, но ради xz придется. Жалко, конечно, что Шаттлворт притворялся оупенсорщиком, а при первой возможности побежал за патентом.
Чингачгук
2 апреля, 2015 - 23:05
Зачем бежать с Debian ? :ставишь ядро убунту в дебиан и проделываеш нужную процедуру :)
Чингачгук
1 апреля, 2015 - 13:04
Скажите, а это ничего, что процессор стал греться на 3 градуса сильнее? Я использовать опцию -5. Ubuntu действительно стала загружаться в разы быстрее, но боюсь спалить процессор.
pomodor
1 апреля, 2015 - 13:05
3 градуса — это несущественно. Но поменять термопасту между вентилятором и процессором на всякий случай не помешает.
Чингачгук
1 апреля, 2015 - 13:20
Жжоте напалмом. Вот это бред. С днем дурака! xD
Чингачгук
1 апреля, 2015 - 13:26
Класс!
Просто праздник какой-то!
Праздник шагает по стране! :D
Чингачгук
1 апреля, 2015 - 13:56
В статье опечатка: в команде "xz" следует вводить не латинскую "x" (икс) а кириллическую «х» (ха).
Прошу исправить.
Чингачгук
1 апреля, 2015 - 20:00
ага) и «з» тоже надо кириллическую,
и на вопрос как ускорить убунту в 9 раз отвечать хз)))
Чингачгук
1 апреля, 2015 - 14:19
Терзают смутные сомнения... сегодня 1-ое апреля)
Чингачгук
1 апреля, 2015 - 16:13
1 апреля, однако.
Спасибо, что не патч Бармина
Чингачгук
1 апреля, 2015 - 19:36
Вот обуржуились конкретно
Свалил с Убунты на Арч, как гора с плечь свалилас
pomodor
2 апреля, 2015 - 15:15
Какие все умные стали. Даже временная предмодерация комментариев не помогла. Следовать доброй традиции — подъ...нуть кого-нибудь на 1 апреля — становится все труднее.
Чингачгук
3 апреля, 2015 - 01:44
Не в этом дело, а в том, что xz довольно известный формат архивов. Надо было придумать что-нибудь менее очевидное.
pomodor
9 апреля, 2015 - 23:53
Известный, да не всем. Но спасибо за замечание, в следующий раз подготовлюсь лучше.
Чингачгук
3 апреля, 2015 - 05:59
Гааа, до "xz" читал внимательно.
Чингачгук
3 апреля, 2015 - 13:08
Аналогично.
Чингачгук
18 февраля, 2016 - 10:48
Блин, дату подачи новости принято ставить в шапке статьи, а не после текста!
Чингачгук
18 января, 2017 - 22:03
Ну и что? Выполняю этот самый xz в терминале, а он какую-то чушь выдаёт.
Это же архив. Причём ускорение ubuntu до сих пор сделал. Уже в системном мониторе ЦП ( Притом у меня 4-ядерный процессор AMD) загрузка колеблется от 10% до 50%! А оперативная память отжирает аж 1,3ГБ! Вроде бы ubuntu должна быть в 2 раза менее требовательной к железу компьютера, примерно же её требования возросли до уровня windows!
Чингачгук
18 января, 2017 - 22:09
То есть НЕ сделал.
pomodor
18 января, 2017 - 22:16
Стесняюсь спросить, на дату публикации смотрели?
Texnoline
19 января, 2017 - 07:25
он даже не знает, где она находится!:)
pomodor
19 января, 2017 - 13:34
Достаточно того, что он не знает, что такое xz.
Чингачгук
19 января, 2017 - 19:49
Знаю, где дата просто вначале всерьёз подумал. Так статья не несёт какой либо пользы! Линуксоиды "шибко логичны" как сказали выше . Но шибко логичными бывают и виндузятники. Там же день первоапрельских шуток. Выходит бред. ;) хз=xz.
Чингачгук
19 января, 2017 - 19:52
В сети полно статей по оптимизации убунту. Надеюсь это решит мою проблему.
pomodor
20 января, 2017 - 01:58
Вот именно, что полно.
Дэмс
2 декабря, 2020 - 16:29
Это ещё актуально? Стоит это делать. Я запустил команду, через пару минут всё зависло и так 7 часов, выключил комп в наглую. После выключал ещё пару раз, он не мог загрузмиться. Версия убунту последняя 20. 5 лет прошло, может это уже не нужно. При вводе команды zx вот что получаю. z: Сжатые данные не могут быть записаны в терминал
xz: Попробуйте `xz --help' для получения более подробного описания.
Комментировать