Как проверить, сколько ресурсов жрет ваш сервер (htop, free -h)
Хочу себе такие же кнопкиЧто вы узнаете сегодня и почему это важно
Вы — владелец или администратор 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
-
Определяем, какой процесс «съедает» RAM
Вhtopсортируем по %MEM (клавиша F6 → %MEM). На вершине списка окажутся тяжёлые процессы. -
Проверяем, сколько памяти действительно доступно
Сравниваемavailableизfree -hс суммой%MEMвсех процессов. Еслиavailableпадает ниже 10 % отtotal, стоит искать «утечки» памяти. -
Ищем «залипшие» процессы
Вhtopищем процессы с высоким %CPU и %MEM одновременно. Часто такие процессы — это скрипты, работающие с большими массивами данных, или неправильно сконфигурированные веб‑серверы. -
Проверяем swap
Еслиfree -hпоказывает, что swap активно используется (used> 0), значит ОЗУ уже не хватает. Вhtopв колонке SWAP будет виден объём swap‑памяти, которую занимает каждый процесс.
5. Практические рекомендации по оптимизации
| Проблема | Как обнаружить | Как решить |
|---|---|---|
| CPU‑нагрузка 100 % | htop → процессы с %CPU > 80 % |
Переписать алгоритм, добавить кеш, ограничить количество воркеров |
| Память «заполняет» кеш | free -h → available < 10 % |
Увеличить RAM, проверить на утечки (valgrind, memprof), снизить размер кеша (например, redis maxmemory) |
| Swap‑активность | free -h → Swap used > 0 |
Увеличить RAM, отключить swap (swapoff -a), оптимизировать запросы к базе |
| Большие файлы в /tmp | htop → процесс с TMPDIR → tmpfs |
Очистить /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. Полезные ссылки
- Официальный гайд по
htop— https://vdsina.ru/htop-guide?partner=5095 - Статья о работе с памятью в Linux — https://vdsina.ru/memory-tips?partner=5095
Практика для закрепления
-
Снимок нагрузки
Запуститеhtop, отсортируйте процессы по%CPUи сделайте скриншот (или скопируйте первые 5 строк). Какие процессы занимают больше 30 % процессора? Что это за программы? -
Анализ памяти
Выполнитеfree -hдважды: сразу после загрузки сервера и через 10 минут после запуска вашего веб‑приложения. Как изменилось полеavailable? Что это говорит о потреблении ОЗУ? -
Поиск «мусорных» процессов
Вhtopвключите колонку PPID и найдите процесс, у которогоPPID = 1(родитель —init). Почему он может быть «залипшим»? Какой сигнал можно отправить, чтобы безопасно его завершить? -
Тестирование swap
Сымитируйте нехватку памяти, запустив несколько копийstress --vm 2 --vm-bytes 1G. Затем проверьтеfree -h. Какой объём swap используется? Как быстро система освобождает память после завершенияstress? -
Автоматический лог
Добавьте в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 год
Весь экран под циферблат