Главная
|
Услуги и цены
VDS
Выделенные серверы
Размещение сервера
|
F.A.Q
|
О компании
|

Мониторинг ресурсов сервера

  • Как понять, что не хватает ресурсов
  • Память (RAM)
  • Процессор
  • Диск

Мониторинг ресурсов сервера — ключевая часть работы с сервером, позволяющая поддерживать систему в работоспособном состоянии и своевременно реагировать на потенциальные проблемы.
В этой статье мы рассмотрим, как мониторить ресурсы сервера Linux, как выявить проблемы производительности и что можно сделать, чтобы быстро их исправить.

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

Иногда на сервере может возникнуть ситуация, когда ресурсы почти исчерпаны.
Это может проявляться в виде замедления работы системы, сбоев или ошибок в логах.

Память (RAM)

Для мониторинга использования памяти на сервере можно использовать следующие утилиты:

free: Покажет общую информацию о памяти, включая физическую память, swap, и свободные ресурсы.

Опция -h отображает данные в удобном формате с единицами (GB, MB).

	free -h
	

Пример вывода:

free command output

В этом случае занята почти вся память used, мало available и free

Поле Описание Признаки проблем
total Объём всей доступной оперативной памяти. Нет. Это физический объём ОЗУ — не изменяется.
used Занятое место в памяти, включая кэшированные и буферизированные данные. Если почти всё занято, стоит анализировать дальше.
free Полностью свободная память, не используемая ни процессами, ни кэшем. Если почти 0, но доступно (available) много, это нормально.
shared Память, используемая для общения между процессами (например, tmpfs). Если большое значение, стоит проверить tmpfs.
buff/cache Память, выделенная под буферы и кэш ядра для ускорения операций. Высокое значение — это нормально. Проблемы — если буфер не сбрасывается при нагрузке.
available Примерно оценённый объём памяти, доступный новым процессам. Если очень мало (< 200–300 МБ), возможно, система близка к переполнению ОЗУ.
Swap total Общий объём файла/раздела подкачки. Если swap мал или равен 0, ОЗУ может быстро исчерпаться.
Swap used Используемый swap (дополнительная память на диске). Если активно используется swap, это указывает на нехватку ОЗУ.

Можно проверить чем занята память, с помощью htop.
В htop можно отсортировать процессы по уровню потребления ресурсов, нажав на нужный столбик.
В случае оперативной памяти это MEM.

Остановка процесса

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

	pkill -f <имя_процесса>
	

Или прямо из htop, выбрав его курсором, нажав F9 и Enter.

htop process list

На скриншоте видно, что большую часть памяти потребляет процесс bash memory_stree.sh, который был искусственно создан для демонстрации.
В этом случае процесс не нужный и его можно просто завершить.

В других случаях можно перезапустить службу, отчистить кэш или перезагрузить сервер.

После остановки процесса память освободилась.
memory usage after process termination

Процессор

Для мониторинга можно использовать htop или top, аналогично как и в случае с оперативной памятью.
mpstat: можно использовать для подробного анализа использования CPU.

	apt install sysstat
	
	mpstat 1 5
	

1 — интервал обновления (в секундах).

5 — количество обновлений.

mpstat command output

В этом случае большой процент %usr и низкий %idle говорит о большой нагрузке на CPU.

Поле Описание Признаки проблем
%usr Процент времени, затраченного пользователями (user time) на выполнение процессов в пользовательском пространстве. Если значение > 70–80%, приложения потребляют много CPU.
%nice Процент времени на задачи с пониженным приоритетом (nice). Высокие значения — фоновые задачи перегружают CPU.
%sys Процент времени, затраченного на системные (ядро) процессы (system time). Высокое значение (> 20%) указывает на проблемы.
%iowait Процент времени, ожидаемого ввода/вывода данных (I/O). Если > 10–15%, диск или сеть могут быть узким местом.
%irq Время обработки аппаратных прерываний. Высокие значения могут указывать на проблемы с драйверами.
%soft Время обработки программных (soft) прерываний. Проблемы с сетью или виртуализацией при высоких значениях.
%steal Время, «украденное» гипервизором в виртуальных машинах. Если > 5%, нехватка ресурсов на хосте виртуализации.
%guest Время, потраченное на виртуальные машины. Если высокое — перегрузка в гостевых системах.
%gnice Время в гостевых машинах с пониженным приоритетом. Обычно низкое. Растёт при интенсивных фоновых задачах.
%idle Процент времени простоя CPU. Если близко к 0%, CPU перегружен.

Проверим что потребляет больше всего ресурсов с помощью htop.

htop CPU load

Видно, что больше всего тратит приложение node.js и скрипт cpu_load.py, запущенный для демонстрации перегрузок CPU.
Его можно остановить с помощью pkill или через htop.

Теперь mstat выводит, что CPU почти не потребляется.

CPU after termination

Для теста дадим нагрузку на веб сервер, опять увидим повышенную нагрузку.

test load on web server

Диск

df: для мониторинга использования дискового пространства.

Показать все диски, разделы и их заполняемость:

	df -h
	
df command output

Тут видно, что почти весь диск занят.

Что бы узнать, какие файлы занимаю больше всего места (топ 10) можно использовать утилиту du:

	du -h / --max-depth=1 2>/dev/null | sort -rh | head -10
	

Но может быть проще установить ncdu, это более удобный способ анализировать место.

	sudo apt install ncdu
	
	ncdu /
	

Вы увидите интерактивный вывод, сможете перемещаться по директориям с помощью стрелок.

ncdu output

Очистка кэша

  1. Отчистить кэш apt
  2. 		sudo apt-get clean
    		
    	
    		sudo apt-get autoremove
    		
    	
  3. Оставить только последние логи.
  4. 		journalctl --vacuum-size=100M
    		
    	
  5. Удалить временные файлы:
  6. 		rm -rf /tmp/*
    		
    	

Удаление старых версий ядра

Если на сервере установлено несколько версий ядра, старые версии могут занимать много места.
Чтобы увидеть, какие версии установлены, используйте:

	dpkg --list | grep linux-image
	

Если некоторые версии вам не нужны, их можно удалить:

	apt-get remove --purge linux-image-<version>
	

fstrim

Для серверов с SSD-хранением полезно периодически выполнять команду fstrim, которая освобождает пространство на диске, очистив блоки, которые больше не используются:

	sudo fstrim -v /
	

Очистка папки /usr/src

Папка /usr/src обычно содержит исходные коды для компиляции, которые занимают много места.
Если вы уверены, что они больше не нужны, можно удалить их:

	rm -rf /usr/src/*
	

Важное замечание: Удаление данных из каталогов вроде /usr/lib или /usr/src может нарушить работу системы, если удалены важные библиотеки или исходные коды.
Рекомендуется предварительно проверить, используются ли эти файлы системой, используя команды вроде dpkg или apt.

Регулярное использование инструментов для анализа памяти, процессора и диска, а также системных журналов и автоматизации мониторинга позволяет поддерживать сервер в работоспособном состоянии.
Не забывайте о безопасности при удалении файлов и всегда проверяйте, что именно вы удаляете, чтобы не затронуть работоспособность системы.

logo
© 2022 62yun
Все права защищены
vk.com/62yuncom
support@62yun.ru
logo
vk.com/62yuncom
support@62yun.ru
Услуги
VDS Выделенные серверы
Полезное
F.A.Q О компании Политика конфиденциальности Оферта
Способы оплаты
wechatpay visa mastercard
MirAccept
Партнеры
25port
© 2022 62yun Все права защищены
ВВЕРХ