раздел 05
Логика управления
Управление мощностью - это цикл: смотрю метрики, нахожу узкое место, увеличиваю нужный ресурс, снова смотрю. Без метрик это гадание.
Шаг 1. Понять, чего не хватает
Сначала диагностика. Два пути:
- Панель провайдера - у Selectel, DigitalOcean и др. есть графики загрузки CPU, RAM, диска и сети. Самый простой способ увидеть тренд и пики.
- Команды на сервере - быстрая проверка прямо в терминале:
CPU
top или htop - загрузка по ядрам и кто грузит; uptime - load average (сравнить с числом ядер).
RAM
free -h - сколько памяти занято, есть ли swap.
Диск (место)
df -h - сколько занято; du -sh * - что именно занимает место.
Процессы
htop - отсортировать по CPU или памяти и увидеть главного потребителя.
Правило: узкое место - тот ресурс, который близок к 100% в моменты, когда всё тормозит. Если CPU 100%, а память свободна - проблема в CPU. Если падает по OOM - в RAM. Если df -h показывает заполненный диск - в диске.
Шаг 2. Нарастить мощность
Есть два способа увеличить мощность, и для новичка почти всегда подходит первый.
Вертикальное (scale up)
Увеличить ресурсы той же машины: больше CPU, RAM, диска. На облаке это resize - пара кликов в панели. Просто и подходит в 90% случаев.
Горизонтальное (scale out)
Добавить ещё серверов и распределить нагрузку между ними (балансировщик). Мощнее, но сложнее - нужно, когда одной машины уже мало.
Как делают resize (вертикальное)
1
Посмотреть метрики
Определить, какой ресурс упёрся (CPU, RAM или диск).
2
Сделать бэкап или снапшот
На всякий случай, перед изменением конфигурации.
3
Выбрать новую конфигурацию
В панели провайдера поднять нужный ресурс. Часто требуется короткая перезагрузка сервера.
4
Проверить
После рестарта убедиться, что сервис поднялся и метрики пришли в норму.
Не только «добавить»
Иногда правильнее не увеличивать ресурс, а убрать нагрузку: починить тяжёлый запрос к базе, включить кэш, почистить логи и старые докер-образы, вынести медиа в S3. Это бесплатно и часто решает проблему лучше, чем апгрейд.