Секреты тюнинга Ubuntu 16.04 LTS Xenial Xerus

Недавно я поставил Ubuntu 16.04 и написал обзор, в котором был вынужден констатировать полную непригодность Xenial Xerus для реальной работы: дистрибутив тормозит и часто падает. Неделя ушла у меня на стабилизацию и разгон. Делюсь своими наработками с вами.

Ускорение Ubuntu

1. Выкидываем мусор

Пишем в терминале dpkg -l, проходимся по списку и выкидываем всё ненужное. Главный вопрос в том, что считать ненужным. Тут два критерия:

1. Вы этим пользуетесь? Нет? Выпиливаем. Например, CUPS на ноутбуке, с которого вы не печатаете. Или поддержка Bluetooth, если её на вашем компьютере либо нет, либо вы не пользуетесь Bluetooth вообще. Не жалейте ничего. Всегда можно будет установить пакеты, если они вдруг потребуются.

2. Вредит приватности? На помойку! Примеры: zeitgeist (жрет ресурсы, следит за активностью пользователя, реальной пользы ноль). Или apport (шаттлвортовская поделка, отправляющая подозрительно большой объем информации о системе при каждом падении любой из программ). Линзы туда же.

Тюнинг Ubuntu 16.04

Удаляете с помощью apt-get remove. В конце делаете autoremove. Потом берете history, закатываете в .sh-файл и заливаете на GitHub. Это чтобы каждый раз руками не чистить.

2. Расправа над сервисами

Пишем в терминале:

systemctl -a -t service | grep " active"

Чего тут только нет… Отключаем ненужное с помощью systemctl disable. Что ненужное? Тут сложнее и каждый решает за себя сам. Я, например, со спокойной душой выпиливаю, помимо прочего, AppArmor, хотя среди хомячков немало «спецов» по информзащите, которые будут с пеной у рта доказывать, что без AppArmor ну ни как. Я же считаю, что он нужен только тогда, когда: 1) пользователь разбирается в его настройке, а не полагается на готовые профили; 2) используется для ограничения программ, к которым имеется доступ из сети (т.е. на сервере), а на десктопе лучше вообще обрубить все входящие соединения и выпилить AppArmor. Но дело вкуса.

Почему службу AppArmor нужно останавливать вместо того, чтобы еще на первом шаге удалить пакет? Так Шаттлворт умудрился сделать AppArmor зависимостью к MySQL, MySQL нужен многим сам по себе, к тому же он в зависимостях у некоторых прикладных программ.

Не забудьте сохранить этот список, чтобы не сидеть в размышлениях при следующем апдейте. Делаете tail ~/.bash_history и закатываете на GitHub.

3. Ускорение Ubuntu

Предыдущие шаги были сделаны для стабилизации Ubuntu, для того, чтобы убрать из ОЗУ хотя бы часть падучих программ. Следующий шаг — ускорение. Запускаем top и смотрим, какие процессы не дают Убунте взлететь.

Самое слабое место Ubuntu 16.04 — Compiz. Он сильно тормозит даже при простое. А иногда и вовсе пытается прилечь.

Tuning Xenial Xerus

Я решил его пересобрать, выкинув ненужное и задав ключи оптимизации для GCC. Пересобрать — проще простого. Грамотно пересобрать, запилить deb-пакет и произвести замену — целое искусство. Вам понадобится установить средства разработки и apt-src для загрузки пакетов с исходным кодом и сборки. Учтите, что при сборке пакет потянет за собой большое количество зависимостей, поэтому заниматься этим стоит либо на запасном компе, либо в виртуальной машине, либо оградиться хотя бы с помощью chroot. Но это уже тема для отдельной статьи.

Ищем через top самые неторопливые программы и пробуем пересобрать пакеты с ними. Не всегда прокатывает высший уровень оптимизации gcc -O3, но для некоторых пакетов его можно использовать и получить существенный прирост производительности.

Я заодно пересобрал еще и Ruby, получив заметный прирост для уже написанных на нем программ. Мой прогноз: самопальные deb-пакеты — главный тренд 2016 года, а apt-src станет лучшим другом специалиста по тюнингу операционных систем. Если Шаттлворт берет Debian, запускает apt-src build и получает Убуку, которой пользуются миллионы, то чем ты, дорогой читатель, хуже?

apt-src — мощный инструмент, который позволяет загружать, компилировать и устанавливать программы из исходного кода. Зачем это нужно? Для того, чтобы получить возможность провести оптимизацию программы под архитектуру конкретно вашей машины. Кроме этого, пользователь apt-get может включить или отключить заданную функциональность у программы и высвободить вычислительные ресурсы.

Резюме

  1. Удаляем ненужные пакеты.
  2. Отключаем ненужные сервисы.
  3. Поторапливаем тормозов.

В итоге оттюнингованная Ubuntu 16.04 LTS Xenial Xerus работает как часы. За неделю тестирования ни единого разрыва. Сравните это с установкой по умолчанию:

Стабильность Ubuntu 16.04

Скорость возросла, хотя и обогнать Gentoo или Arch вряд ли получится.

Результатом я доволен и принял решение пока оставаться на Ubuntu.