Как проверить, сколько ресурсов жрет ваш сервер (htop, free -h)
Дата публикации: 18.05.2026

Как проверить, сколько ресурсов жрет ваш сервер (htop, free -h)

Хочу себе такие же кнопки
ccb9a536

Что вы узнаете сегодня и почему это важно

Вы — владелец или администратор VDS‑сервера, и от того, насколько быстро вы сможете понять, сколько процессора, памяти и swap‑пространства «съедает» ваш сервер, зависит стабильность сайта, время отклика приложений и, конечно, ваш бюджет. На этом уроке мы разберём два самых простых и мощных инструмента — htop и free ‑h — и научимся быстро читать их вывод, как находить «узкие места» и какие действия предпринимать, чтобы сервер работал как часы.


1. Почему нельзя полагаться только на «показатели в браузере»

Показатель Где обычно смотрят Что он действительно измеряет
CPU % Панель управления VDS‑провайдера Нагрузка на процессор в реальном времени
RAM % Статистика в личном кабинете Объём использованной ОЗУ, но без детализации процессов
Disk IO Графики в веб‑интерфейсе Количество чтений/записей, но без информации о том, какие файлы задействованы

Эти «общие» цифры дают лишь поверхностное представление. Чтобы понять, какой процесс потребляет ресурсы, необходимо смотреть внутрь системы — именно для этого созданы htop и free ‑h.


2. Установка и запуск htop

sudo apt update
sudo apt install htop   # Debian/Ubuntu
# или
sudo yum install htop   # CentOS/RHEL

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

htop

htop открывается в интерактивном терминальном окне, где всё обновляется каждые секунду. Вы сразу видите:

  • CPU — полоски разных цветов (user, system, nice, iowait, irq, softirq, steal, guest).
  • Memory — использованная ОЗУ и swap.
  • Processes — список всех запущенных процессов с их PID, пользователь, состояние, %CPU, %MEM и командой.

2.1. Основные клавиши навигации

Клавиша Действие
F1 Помощь
F2 Настройки (можно включить/выключить отдельные столбцы)
F3 Поиск по названию процесса
F4 Фильтрация процессов
F5 Древовидный вид (показывает родитель‑дочерние связи)
F6 Сортировка по выбранному столбцу
F9 Убить процесс (выбирайте сигнал)
q Выход

Совет: нажмите F2 → Columns и добавьте столбец PPID (Parent Process ID), чтобы сразу видеть, какие процессы являются «детками» у других.


3. Что показывает free -h и как правильно его читать

free выводит статистику памяти в удобочитаемом виде (-h — human‑readable). Команда:

free -h

Результат выглядит так:

              total        used        free      shared   buff/cache   available
Mem:           7.8G        3.2G        1.1G        256M        3.5G        4.1G
Swap:          2.0G        0B          2.0G

3.1. Разбор строк

Столбец Что измеряется
total Общий объём физической памяти (RAM) или swap
used Память, которую «занимает» система (включая кеш)
free Память, полностью свободная
shared Память, используемая совместно (например, между процессами через tmpfs)
buff/cache Память, занятой буферами и файловым кешем — её можно быстро освободить, если понадобится
available Оценка памяти, которую можно использовать без свопинга (самый важный показатель)

Почему available важнее, чем free?
Операционная система использует часть ОЗУ под кеш, чтобы ускорить доступ к файлам. Эта память «занята», но в любой момент её можно освободить под новые задачи. Поэтому available показывает реальное количество «доступной» памяти.


4. Как связать данные из htop и free -h

  1. Определяем, какой процесс «съедает» RAM
    В htop сортируем по %MEM (клавиша F6 → %MEM). На вершине списка окажутся тяжёлые процессы.

  2. Проверяем, сколько памяти действительно доступно
    Сравниваем available из free -h с суммой %MEM всех процессов. Если available падает ниже 10 % от total, стоит искать «утечки» памяти.

  3. Ищем «залипшие» процессы
    В htop ищем процессы с высоким %CPU и %MEM одновременно. Часто такие процессы — это скрипты, работающие с большими массивами данных, или неправильно сконфигурированные веб‑серверы.

  4. Проверяем swap
    Если free -h показывает, что swap активно используется (used > 0), значит ОЗУ уже не хватает. В htop в колонке SWAP будет виден объём swap‑памяти, которую занимает каждый процесс.


5. Практические рекомендации по оптимизации

Проблема Как обнаружить Как решить
CPU‑нагрузка 100 % htop → процессы с %CPU > 80 % Переписать алгоритм, добавить кеш, ограничить количество воркеров
Память «заполняет» кеш free -havailable < 10 % Увеличить RAM, проверить на утечки (valgrind, memprof), снизить размер кеша (например, redis maxmemory)
Swap‑активность free -hSwap used > 0 Увеличить RAM, отключить swap (swapoff -a), оптимизировать запросы к базе
Большие файлы в /tmp htop → процесс с TMPDIRtmpfs Очистить /tmp, настроить отдельный диск для временных файлов

Трюк: в htop нажмите F2 → Display options и включите Tree view. Это сразу покажет, какие процессы являются «потомками» у веб‑серверов, cron‑задач и т.д., позволяя быстро локализовать «проблемные» ветки.


6. Как автоматизировать сбор статистики

Если вам нужно регулярно получать отчёты, можно добавить в crontab простую команду:

*/5 * * * * /usr/bin/free -h > /var/log/memory_$(date +\%F).log
*/5 * * * * /usr/bin/htop -b -n 1 > /var/log/htop_$(date +\%F).log
  • -b — режим batch (текстовый вывод).
  • -n 1 — один снимок и выход.

Эти файлы удобно просматривать через less или отправлять в Slack/Telegram с помощью webhook‑ов.


7. Полезные ссылки


Практика для закрепления

  1. Снимок нагрузки
    Запустите htop, отсортируйте процессы по %CPU и сделайте скриншот (или скопируйте первые 5 строк). Какие процессы занимают больше 30 % процессора? Что это за программы?

  2. Анализ памяти
    Выполните free -h дважды: сразу после загрузки сервера и через 10 минут после запуска вашего веб‑приложения. Как изменилось поле available? Что это говорит о потреблении ОЗУ?

  3. Поиск «мусорных» процессов
    В htop включите колонку PPID и найдите процесс, у которого PPID = 1 (родитель — init). Почему он может быть «залипшим»? Какой сигнал можно отправить, чтобы безопасно его завершить?

  4. Тестирование swap
    Сымитируйте нехватку памяти, запустив несколько копий stress --vm 2 --vm-bytes 1G. Затем проверьте free -h. Какой объём swap используется? Как быстро система освобождает память после завершения stress?

  5. Автоматический лог
    Добавьте в crontab команду, сохраняющую вывод free -h в файл /tmp/mem_log.txt каждые 2 минуты. Через 5 минут запишите содержимое файла в чат‑бот (можно просто скопировать). Что вы видите? Есть ли тенденция к росту использования памяти?

Ответьте на вопросы, сделайте заметки, а затем проверьте свои выводы с помощью реального сервера. Чем больше практики, тем быстрее вы будете «чувствовать» состояние вашего VDS‑сервера. Удачной диагностики!


Введение: чем VDS отличается от шаред-хостинга и зачем это веб-мастеру
Как правильно выбрать тариф: CPU, RAM, NVMe или SSD, канал
Выбор операционной системы: почему Ubuntu 22.04/24.04 — стандарт индустрии
Регистрация домена и первичная настройка DNS-записей (A, AAAA, CNAME)
Генерация SSH-ключей на локальном компьютере (Windows/Mac/Linux)
Добавление публичного ключа на сервер и первый вход по SSH
Отключение входа по паролю и запрет авторизации для root
Смена стандартного порта SSH для снижения шума в логах
Создание основного рабочего пользователя с правами sudo
Базовое обновление системы и установка необходимых утилит (curl, wget, git, htop)
Настройка часового пояса и синхронизация времени (NTP)
Установка и базовая настройка фаервола UFW
Разрешение только необходимых портов (SSH, HTTP, HTTPS)
Установка Fail2Ban для защиты от перебора паролей
Настройка правил Fail2Ban для SSH и веб-сервера
Знакомство с Docker: установка движка и CLI
Установка Docker Compose для управления мульти-контейнерными приложениями
Основы изоляции: почему каждый проект должен быть в своем контейнере
Подготовка файловой структуры сервера для удобного хранения проектов
Развертывание Nginx как обратного прокси-сервера через Docker
Настройка конфигурации Nginx для статических сайтов
Установка PHP-FPM в отдельном контейнере
Связка Nginx и PHP-FPM через внутреннюю Docker-сеть
Оптимизация настроек PHP-FPM (pm.max_children, memory_limit) под нагрузку
Установка MariaDB/MySQL в изолированном контейнере
Безопасное хранение паролей от БД через переменные окружения (.env)
Подключение к базе данных из внешнего клиента (DBeaver/Navicat) через туннель
Установка Redis для кэширования запросов и сессий
Интеграция Redis с PHP-приложением для ускорения работы
Автоматическая выдача SSL-сертификатов через Certbot (Let's Encrypt)
Настройка автопродления SSL-сертификатов по крону
Принудительный редирект с HTTP на HTTPS в Nginx
Включение gzip и brotli сжатия для ускорения загрузки страниц
Настройка кэширования статики (browser caching) в заголовках Nginx
Защита от простых DDoS и ботов: модуль limit_req в Nginx
Настройка резервного копирования баз данных (mysqldump) по расписанию
Настройка резервного копирования файлов проектов (tar)
Отправка бэкапов на удаленное хранилище (S3-compatible storage или другой сервер)
Ротация и очистка старых логов, чтобы не забить диск
Мониторинг нагрузки: установка и настройка htop и iotop
Просмотр логов в реальном времени: tail, grep и journalctl
Установка простого мониторинга доступности (Uptime Kuma или скрипт в Telegram)
Изоляция арбитражных инструментов: запуск ботов в отдельных контейнерах
Установка SOCKS5/HTTP прокси (3proxy) внутри Docker для мультиаккаунтинга
Настройка аутентификации и ограничения доступа к прокси по IP
Проверка анонимности и работы прокси-сервера
Оптимизация ядра Linux (sysctl.conf) для высоких нагрузок и сетевых соединений
Настройка swap-файла: когда он нужен, а когда вредит
Чек-лист финальной проверки безопасности перед запуском проекта
План действий при взломе или падении сервера: восстановление из бэкапа
АПТЕЧКА ДЛЯ ЖИВОТНЫХ
Автомобили Германии — FORD, MERSEDES, VW, IVECO
Чат рулетка 2026: чаты, где каждый момент — шанс
Чат рулетка онлайн
Чат с Аней: психологический разговор
Чатрулетка: новый способ общения
Чай и кофе: сила вкуса
Детские игрушки из безопасных материалов
Эксплуатация шин: Рекомендации по использованию
Фототехника для пейзажей
Как Aptum хостинг помогает малым бизнесам в управлении CRM-системами
Как выбрать Vdsina вечный хостинг для своего проекта
Компоненты безопасности IP
Конкуренция на российском автомобильном рынке
Онлайн генератор паролей для Windows
Оптимизация обработки форм GEO проекта
Сервер для социальных сетей: Безопасность, Скорость, Изоляция
Смешные моменты
Сравнение Arsys хостинг сервисов для блогеров с WordPress на 2023 год
Весь экран под циферблат
рейтинг хостингов 2026 Быстрые VDS серверы