цены сверены 13 октября 2026 года

Как понять, что серверу не хватает ресурсов

Нехватку ресурсов видно по четырём вещам: память (free -h, колонка available), процессор (load average против числа ядер), диск (df -h и df -i) и дисковый ввод-вывод (iostat). Сначала найдите процесс-виновник, и только если он нужен, меняйте тариф.

Как понять, что серверу не хватает ресурсов
Как понять, что серверу не хватает ресурсовhostfakt.ru
Содержание
  1. Память
  2. Процессор
  3. Диск
  4. Скорость диска
  5. Сначала найдите виновника
  6. Что делать дальше

Сервер упирается в один из четырёх ресурсов: память, процессор, диск или скорость диска. Сайт или бот при этом тормозит, падает или перестаёт отвечать, но причина у всех симптомов разная. Ниже по каждому ресурсу: что смотреть и как читать вывод. Команды вводите на сервере по SSH, права root нужны только там, где указан sudo.

Память

free -h

Показывает память и swap в удобных единицах. Смотрите на колонку available: это оценка памяти, которую можно отдать программам без выгрузки данных на диск. Колонка free почти всегда мала, потому что Linux использует свободную память под кэш файлов, и это нормально. Тревожный признак: available стремится к нулю, а строка Swap заполнена.

Самый явный сигнал нехватки это OOM: ядро убивает процесс, потому что память кончилась. Проверка:

sudo journalctl -k | grep -i -E 'out of memory|oom'

journalctl -k выводит журнал ядра, grep оставляет строки про нехватку памяти. Если там есть записи вида Out of memory: Killed process, ядро уже убивало процесс, имя которого указано в строке. Подробнее о журналах: службы и журналы на VPS.

Кто ест память прямо сейчас:

ps aux --sort=-%mem | head -n 6

ps aux выводит все процессы, --sort=-%mem ставит наверх самые прожорливые по памяти, head -n 6 оставляет заголовок и пять строк.

Для кратких пиков поможет файл подкачки, для постоянной нехватки нужна память побольше.

Процессор

uptime
nproc

uptime показывает три числа load average: средняя нагрузка за 1, 5 и 15 минут. nproc выводит число ядер. Практическое правило: если нагрузка за 5–15 минут стабильно выше числа ядер, процессам приходится ждать очереди на процессор. Одиночный всплеск на минуту ни о чём не говорит. Учтите, что load average считает и процессы, ждущие диск, поэтому высокое число не всегда значит нехватку процессора.

top

Открывает список процессов в реальном времени, по умолчанию отсортированный по нагрузке на процессор. Строка %Cpu(s) показывает загрузку: us это программы, wa ожидание диска. Выход клавишей q. Клавиша M сортирует по памяти, P по процессору.

Диск

df -h
df -i

df -h показывает занятое и свободное место на каждой файловой системе, сервер обычно интересует строка с корнем /. df -i показывает inode: у каждого файла есть своя запись, и если их исчерпать множеством мелких файлов, место на диске есть, а создать файл нельзя. Опасный признак: Use% близок к 100.

Найти, что занимает место:

sudo du -xh --max-depth=1 /var | sort -h | tail -n 10

du считает размер каталогов, -x не выходит за пределы одной файловой системы, --max-depth=1 показывает только первый уровень, sort -h сортирует размеры по возрастанию, tail -n 10 оставляет десять самых больших. Повторяйте команду для найденного каталога, спускаясь вниз. Частые виновники: журналы, кэши и образы Docker. Не удаляйте незнакомые файлы без понимания, что это.

Скорость диска

Если процессор не занят, память есть, а всё равно медленно, возможно, упёрлось чтение и запись диска. Для проверки установите пакет sysstat:

sudo apt install sysstat
iostat -x 1 5

Первая команда ставит набор утилит, вторая выводит расширенную статистику дисков раз в секунду пять раз. Первый отчёт показывает усреднение с момента загрузки, смотрите на следующие. Если %util у диска держится около 100, а в top высок показатель wa, диск не справляется. Тогда стоит подумать про тип накопителя.

Сначала найдите виновника

Тариф обычно меняют последним. Сначала ответьте на вопросы:

  • какой процесс ест ресурс (ps, top)?
  • это постоянная нагрузка или одиночный пик, например бэкап ночью?
  • нет ли утечки: память растёт день за днём, пока процесс не перезапустят?
  • не забит ли диск журналами или старыми архивами?

Если виновник это ваш проект и он работает как задумано, значит ему нужен тариф побольше. Если это лишняя служба, остановите её. Для контейнеров полезна команда docker stats --no-stream: она один раз показывает нагрузку каждого контейнера.

Что делать дальше

Когда ясно, что не хватает именно ресурса, определите, чего и сколько. Общие принципы описаны в статье как выбрать VPS. Затем сравните тарифы по конфигурациям: 2 ядра, 2 ГБ, 2 ядра, 4 ГБ и 4 ядра, 8 ГБ, или откройте подбор VPS с фильтром.