Блог

Уроки, руководства и новости продукта.

Руководства

Сервер стал тормозить: как проверить RAM, CPU и диск

2 ноября 2026 5 мин. чтения
Поделиться записью

Если сервер замедлился, посмотрите на три вещи: RAM, CPU и диск. Подключитесь и выполните три команды: free -h для памяти, top для процессора и df -h для диска. Что заполнено, то и узкое место. Если все три в порядке, проблема обычно в самом приложении.

Начните с нагрузки

Load average — это среднее число процессов, ожидающих CPU или диск. Первые три числа в выводе ниже — средние за последние 1, 5 и 15 минут. Сравните их с числом ядер:

cat /proc/loadavg

nproc

Если нагрузка долго остаётся выше числа ядер, сервер не справляется со своей работой.

RAM: free -h

free -h

Самый важный столбец — Доступно. Если значение очень мало, а строка Swap заполняется, RAM закончилась. Когда память кончается, ядро убивает один из процессов, использующих больше всего памяти (OOM killer). Если база данных или веб-приложение закрываются сами по себе, это часто признак именно такой ситуации. Проверьте так:

sudo dmesg -T | grep -i -E "out of memory|killed process"

CPU: top

top

На открывшемся экране клавиша P сортирует процессы по использованию CPU, а клавиша M — по использованию памяти. Нажмите q, чтобы выйти. В строке CPU вверху смотрите на это:

  • us: доля пользовательских процессов. Если она высока, процессор съедает какое-то приложение.
  • wa: время ожидания ввода-вывода диска. Если оно высоко, проблема не в CPU, а в диске.
  • st: «украденное» у виртуального сервера время, то есть время, которое слой виртуализации отдал процессор кому-то другому. Если оно остаётся высоким, проблема может быть не внутри вашего сервера. Тогда обратитесь в поддержку.

Диск: df -h

df -h

df -i

Первая команда показывает занятое место, вторая — предел числа файлов (inode). Когда диск заполнен полностью, базы данных и приложения не могут писать, а сервер тормозит или выдаёт ошибки. Узнайте, что занимает место:

sudo du -xh / --max-depth=1 2>/dev/null | sort -h | tail -n 8

Если системные журналы выросли, их можно уменьшить командой sudo journalctl --vacuum-size=200M. Если вы используете Docker, docker system df показывает место, занятое образами и контейнерами, а docker stats --no-stream — сколько CPU и памяти использует каждый контейнер.

Симптом, вероятная причина и решение

СимптомВероятная причинаЧто сделать
Страницы иногда тормозят, Доступно мало, подкачка заполненаНе хватает RAMОстановите ненужные службы и сократите настройки памяти приложения (например, число рабочих процессов PHP-FPM или память базы данных). Если этого мало, увеличьте сервер.
Служба закрывается сама, в выводе dmesg появляется «killed process»Память закончилась, и вмешался OOM killerДобавьте RAM или сократите использование памяти.
Один процесс в top постоянно занимает целое ядроЗависший процесс, неисправный плагин или циклНайдите процесс, затем исправьте или отключите приложение или плагин, который за ним стоит.
Нагрузка высокая, CPU простаивает, wa высокИдёт ожидание диска (интенсивная запись или подкачка)Посмотрите столбцы si и so в выводе vmstat 1 5. Если используется подкачка, добавьте RAM.
df -h или df -i показывает, что всё занятоЗакончилось место на диске или inodeУдалите большие файлы и журналы. Если место продолжает заполняться, увеличьте сервер.
st остаётся высокимПроблема может быть вне вашего сервераОбратитесь в поддержку.

В Seturack скорость диска каждого сервера ограничена: при чтении — сплошные 500 МБ/с и 20 000 IOPS, при записи — 200 МБ/с и 8000 IOPS. Если ваши значения в выводе iostat -x 1 5 упираются в эти числа, замедляет вас нагрузка на диск. Сократите работу с помощью кэширования или распределите её по времени. Если iostat нет, установите его командой sudo apt install -y sysstat.

Когда помогает подкачка?

Подкачка использует диск вместо RAM. Она позволяет серверу пережить короткие скачки памяти без OOM killer, но работает не так быстро, как RAM. Если si и so в выводе vmstat 1 5 остаются выше нуля, сервер постоянно пишет в подкачку. Решение — RAM, а не подкачка. Если подкачки нет (swapon --show ничего не выводит) и вы хотите сгладить скачки, можно добавить файл подкачки на 2 ГБ. Эти команды — для файловой системы ext4:

sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile

sudo mkswap /swapfile && sudo swapon /swapfile

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Если ресурсы в порядке

Если RAM, CPU и диск выглядят спокойно, посмотрите в top название процесса, который наверху:

  • Если наверху php-fpm, apache2 или nginx, проблема обычно в самом сайте: тяжёлый плагин, нет кэширования или резкий скачок числа посетителей.
  • Если наверху mysqld или mariadbd, есть медленные запросы. Включите журнал медленных запросов базы данных и посмотрите, какие запросы выполняются долго.
  • Если незнакомый процесс постоянно съедает CPU, сервер могли взломать. Смените пароли, проверьте открытые сеансы и вывод sudo ss -tulpn, а при необходимости переустановите сервер с чистой системой.

Когда увеличивать сервер

Порядок такой: сначала настройка, затем кэширование, затем отключение лишней работы. Если после этого нагрузка всё ещё высока, увеличьте сервер. В панели откройте вкладку Размер своего сервера, передвиньте ползунки на новый размер и подтвердите. После оплаты сервер один раз сам перезапустится и вернётся уже нового размера. IP-адрес и данные останутся прежними, а платить нужно только разницу за оставшиеся дни. RAM, vCore и диск можно увеличивать по отдельности, поэтому поднимается только то, чего не хватает. При увеличении диск растёт, а при уменьшении не сжимается. Подробности — в статье о масштабировании.

Если сервер из-за нагрузки не отвечает совсем, SSH может не подключаться. Тогда откройте VNC-консоль из панели или перезапустите сервер из панели.

Комментарии0

Комментариев пока нет

Поделитесь своим мнением первым.

Присоединяйтесь к обсуждению

Пожалуйста, войдите или зарегистрируйтесь, чтобы оставить комментарий.

Не пропускайте новые записи

Получайте наши свежие инструкции, руководства и новости продукта на почту.

Вы подписались на нашу рассылку.