Как превратить Ubuntu Server в оптимальный VPS

Свежий Ubuntu Server на VPS тянет за собой набор служб «на все случаи жизни»: snap, multipath, modem manager, иногда bluetooth и avahi. На маленьком инстансе это лишняя RAM, лишние unit-ы при boot и лишняя поверхность атаки. Ниже – как посмотреть, что включено, что реально тормозит загрузку, и что обычно можно отключить или убрать на типичном VPS.

Важно: не отключайте пачками сетевые и дисковые службы на боевой машине без консоли/VNC у хостера. Один неверный disable NetworkManager без настроенного netplan/networkd – и SSH пропадёт. Делайте по одной службе, проверяйте сеть и нужные сервисы.

Что сейчас включено

Список unit-файлов в состоянии enabled:

systemctl list-unit-files --type=service --state=enabled

Полный перечень service-unit-ов (в т.ч. disabled):

systemctl list-unit-files --type=service --all --no-pager

Кто дольше всех стартует при boot:

systemd-analyze blame

blame показывает время старта unit-а, а не «насколько он плохой». Долгий cloud-init на первом boot – норма; долгий ненужный daemon на каждом reboot – кандидат на disable.

Правила безопасной зачистки

  • сначала некритичное (bluetooth, avahi, modemmanager), потом спорное;
  • ведите список отключённого (файл в home или ticket) – чтобы откатить;
  • после каждого шага: сеть, SSH, ваши приложения;
  • не трогайте ssh, cron, logging, time-sync, ваш web/db stack без понимания зависимости.

Кандидаты на отключение и удаление

1. Snapd

Если snap-пакеты не используете (типичный headless VPS на apt), snapd можно убрать:

sudo apt purge snapd squashfs-tools

Вернуть при необходимости:

sudo apt install snapd

На части образов Ubuntu snap уже «вшит» в экосистему (lxd, firefox-snap и т.п.). Если что-то из нужного зависит от snap – purge отложите.

2. ModemManager

На VPS без USB-модемов обычно не нужен:

sudo systemctl stop ModemManager
sudo systemctl disable ModemManager

3. multipathd (DM-Multipath)

Multipath нужен, когда к СХД несколько путей. На обычном VPS с одним виртуальным диском – лишний:

  1. Остановить: sudo systemctl stop multipathd
  2. Выключить автозапуск: sudo systemctl disable multipathd
  3. Удалить пакет: sudo apt-get remove multipath-tools
  4. Проверить: sudo systemctl status multipathd
  5. При желании purge конфигов: sudo apt-get purge multipath-tools
systemctl status multipathd после disable

4. udisks2

Управление съёмными накопителями. На сервере без hotplug USB-дисков часто можно отключить:

sudo systemctl stop udisks2
sudo systemctl disable udisks2

5. NetworkManager – только если сеть уже на netplan/networkd

На многих cloud-образах сеть уже через netplan + systemd-networkd, NetworkManager нет. Если NM установлен и вы им не пользуетесь, отключение возможно, но только после проверки, что IP, DNS и маршруты поднимаются без него:

sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

Если SSH ходит только через NM-профиль – сначала переведите интерфейс на netplan, проверьте reboot, потом disable.

6. Bluetooth

На VPS почти всегда лишний:

sudo systemctl stop bluetooth
sudo systemctl disable bluetooth

7. avahi-daemon

mDNS/DNS-SD в локалке. Публичному VPS обычно не нужен:

sudo systemctl stop avahi-daemon
sudo systemctl disable avahi-daemon

8. Лишний веб-сервер из образа

Если в образе случайно стоит Apache, а вы на nginx (или наоборот) – уберите неиспользуемый стек. Пример для Apache2:

sudo systemctl stop apache2
sudo systemctl disable apache2
sudo apt-get remove apache2

Не удаляйте тот web-сервер, на котором крутятся сайты.

Пакеты и проверка после

Подчистить зависимости:

sudo apt-get autoremove

Активные службы:

systemctl list-units --type=service

Имеет смысл ещё раз глянуть systemd-analyze blame и free -h до/после – чтобы видеть эффект на boot и RAM, а не гадать.

Кратко

«Оптимальный» Ubuntu VPS – это не вырезанный до гола образ, а хост без служб, которые не обслуживают ваши задачи. Смотрите enabled + blame, отключайте modemmanager/bluetooth/avahi/multipath/snap по необходимости, NetworkManager – только с запасным каналом доступа. После зачистки проверьте сеть, SSH и приложения.

Источники и ссылки


Комментарии загружаются…