Как посмотреть нагрузку на процессор сервера

Обсудить
Как посмотреть нагрузку на процессор?

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

Что значит нагрузка на процессор и зачем ее отслеживать?

Под нагрузкой понимается то количество ресурсов, которое «железо» компьютера тратит на выполнения одной или нескольких задач. Обычно оно отображается в процентном соотношении, где за 100% берется максимальная загрузка одного из ядер.

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

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

Такая «бесполезная» загрузка чипа приведет к общему снижению производительности сервера, а также приложений и сайтов, базирующихся на нем. А это приведет к потере аудитории и снижению прибыли.

Лучшие инструменты для отслеживания нагрузки на CPU сервера

Наблюдать за тем, какое количество ресурсов чипа расходуется в текущий момент, можно несколькими способами:

  • с помощью инструментов, предоставляемых хостинг-провайдером, у которого вы арендовали сервер;
  • с помощью специальных текстовых утилит для Linux, отображающих статистические данные о состоянии компьютера.

Мы рассмотрим оба варианта, но у вашего хостинга может не быть панели со статистикой. Поэтому я покажу такую панель на примере Timeweb, где она точно имеется. Разбираться будем на примере сервера с Linux на борту.

Подробности о мониторинге состояния сервера уточняйте у своего провайдера.

Панель управления хостингом

Timeweb (как и некоторые другие провайдеры) предоставляет статистические данные о состоянии сервера в реальном времени. В панели управления VDS/VPS есть отдельный блок, в котором отображается график с актуальной нагрузкой на процессор.

Чтобы получить доступ к информации о состоянии чипа в панели управления Timeweb:

  1. Заходим на страницу хостинга и вводим данные для авторизации в ПУ.
  2. Открываем список действующих VDS и переходим к тому, нагрузку на который нужно оценить.

На главной странице появится блок со статистикой за день. Там будет информация и по процессору, и по интернет-каналу. Все в блоке вместе с основной информацией о сервере (подразумевается операционная система и объем свободного пространства на диске).

Нагрузка на CPU в Timeweb

Если перейти на вкладку «Статистика», можно будет указать временной отрезок, чтобы посмотреть уровень нагрузки в ретроспективе (на момент сбоев или жалоб посетителей). Также появится доступ к блоку «Оперативная память», где можно оценить нагрузку на ОЗУ.

Текстовые утилиты для проверки нагрузки

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

Только перед началом работы с ними, надо подключиться к серверу с помощью SSH-протокола.

В macOS и Linux это делается через терминал. Открываем командную строку и вводим в нее ssh root@адрес сервера. В Windows сначала надо скачать программу PuTTY, запустить ее, найти внутри поле IP-адреса, указать в нем адрес сервера, а потом нажать ОК.

В обоих случаях нужно будет авторизоваться, используя пароль администратора, а дальнейшие команды выполнять через консоль SSH. Так что стоит ознакомиться с базовыми принципами работы терминала Linux перед началом.

IP-адрес можно разыскать в панели управления провайдера либо спросить у техподдержки. А пароль хостинг высылает на почту сразу после аренды VDS/VPS.

top

Команда top выводит в терминал Linux информацию о процессоре сервера в реальном времени. Данные обновляются каждые 5 секунд.

top показывает уровень нагрузки в процентах (поле %CPU) для каждого запущенного приложения.

Чтобы вывести статистику на экран, надо ввести в консоль top без дополнительных вводных. Появится некий аналог менеджера задач в текстовом облике. Но информацию на экране можно менять, используя горячие клавиши для управления утилитой:

  • P — отсортирует выполняемые задачи по уровню нагрузки на CPU.
  • M — отсортирует процессы по уровню затрачиваемой ОЗУ.
  • N — по имени запущенных процессов.
  • T — по времени выполнения задачи с момента последнего запуска.
  • U — покажет программы, запущенные конкретным пользователем.

Вывод top можно упростить, удалив из него простаивающее процессы. Так можно сосредоточить внимание только на активных задачах, потребляющих ресурсы в моменте. Для этого команду надо слегка усложнить, добавив в конце опцию -i.

iostat

Еще одна встроенная в Linux системная утилита, отображающая статистические показатели «железа».

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

Чтобы получить данные конкретно о CPU, надо дополнить команду аргументом -c.

В отчете iostat уровень нагрузки на чип показывается в процентах для каждой запущенной программы и делится на несколько категорий.

  • user — процессы, запущенные от имени пользователя.
  • nice — то же, только с измененным приоритетом.
  • system — процессы, напрямую связанные с операционной системой.
  • idle — время в простое.

Команду можно модифицировать, указав дополнительные опции, корректирующие вывод в консоль.

Можно добавить интервал, прописав в конце количество раз, которое iostat должен вывести отчет, и периодичность этой операции. Также можно изменить формат отображения затрачиваемых ресурсов или показать расширенную статистику.

vmstat

По умолчанию эта команда Linux выводит в консоль информацию о состоянии виртуальной памяти. Но через нее можно добыть данные и о других компонентах операционной системы. Степень загруженности CPU в их числе.

vmstat как и top попеременно обновляет данные. Интервал обновления зависит от указанных опций. Например, чтобы получать свежий отчет vmstat каждые 5 секунд, надо ввести в терминал команду vmstat 5. Добавив еще одну цифру, можно указать количество отчетов.

Вывод утилиты содержит в себе несколько колонок. Последние 5 отображают информацию о процессоре (обведены в графу CPU):

  • us — процент нагрузки со стороны несистемных задач, то есть тех, что запустил пользователь.
  • sy — системная нагрузка на уровне ядра.
  • id — время, которое процессор проводит в ожидании, не выполняя никаких задач.
  • wa — время, затраченное чипом на ожидание ввода или вывода данных.
  • st — процент нагрузки со стороны виртуальной машины.

Сторонние текстовые утилиты

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

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

Для этого нужно запустить менеджер пакетов, введя соответствующую команду. Например, для установки пакета nmon нужно ввести:

В дистрибутиве Ubuntu / Debian

sudo apt get install nmon 

В дистрибутиве Fedora

sudo dnf install nmon 

В дистрибутиве Arch Linux

pacman -s nmon 

В дистрибутиве CentOS/RedHat Linux

yum install nmon

htop

Команда для установки: sudo название менеджера пакетов install nmon

У команды top есть своего рода старший брат — htop. Это модификация встроенной в Linux утилиты с расширенной функциональностью, настраиваемой статистикой и более наглядным интерфейсом.

Интерфейс приложения htop

Отображаемые в htop показатели поддаются тонкой настройке со стороны клиента. Можно удалить лишние данные, оставив только нагрузку CPU, а можно, наоборот, добавить больше показателей, если стандартных не хватает.

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

Окно htop поддерживает работу в четерыхколоночном режиме. В каждой колонке можно отобразить статистику по каждому из ядер, установленных на вашем VDS. Вплоть до 128 ядер на одном экране с возможностью комфортно отслеживать нагрузку на все активные CPU.

nmon

Команда для установки: sudo название менеджера пакетов install nmon

Еще одна сторонняя утилита для системных администраторов, помогающая оценить общее состояние сервера. В отличие от htop, nmon содержит в себе меньшее количество функций и возможностей адаптации интерфейса под свои задачи.

У самой утилиты нет модификаторов запуска, она работает в одном режиме и запускается командой nmon.

Интерфейс nmon делится на три части:

  • CPU Utilisation — в первой отображается нагрузка на процессор. Все ядра по списку, от 1 до последнего, и количество ресурсов, потребляемых пользователем, системой, а также находящихся в ожидании и в простое.
  • CPU Utilisation Stats — статистические данные по тем же показателям, что отображаются в первой секции.
  • Top Processes — список программ, отсортированный по степени «прожорливости» процессорных мощностей.

dstat

Команда для установки: sudo название менеджера пакетов install dstat

Если подход к отображению данных в вышеперечисленных утилитах почему-то не понравился, то стоит обратить внимание на альтернативу в виду dstat. В одном окне утилиты умещается больше информации, чем у аналогичных программ других разработчиков.

Показатели сервера в dstat распределены по колонкам. В первой отображается уровень нагрузки в процентах со стороны пользователя. Затем идет sys, то есть часть ресурсов, затрачиваемых системой и ее компонентами. После — простой.

Также в колонках можно найти название процесса, расходующего мощности чипа, информацию о работе оперативной памяти и накопителя (сколько данных было записано и сколько прочитано). Сетевые показатели тоже имеются.

Вывод команды dstat можно настроить под свои нужды с помощью опций. Например, чтобы отсортировать запущенные программы по нагрузке на чип и по количеству используемой в текущей момент ОЗУ, надо ввести: 

dstat -c –top-cpu -dn –top-mem

mpstat

Команда для установки: sudo название менеджера пакетов install mpstat

Подходит тем, кто использует систему с несколькими процессорами. mpstat в удобоваримом виде показывает информацию по всем CPU.

В отличие от той же top, mpstat не показывает запущенные программы. В списке чередуются и нумеруются только установленные процессоры. Затем показывается, сколько ресурсов уходит на пользователя, сколько на систему, а сколько простаивает.

По умолчанию команда mpstat выводит данные по всем CPU сразу, но ее можно модифицировать:

  • mpstat -P ALL — покажет информацию по действующим чипам.
  • mpstat -P ALL 6 2 — покажет те же данные, но только дважды с периодичностью в 6 секунд. Для оценки нагрузки в динамике.

Подробнее с функциональностью mpstat можно ознакомиться, введя команду man mpstat.

sar

Команда для установки: sudo название менеджера пакетов install sar

Утилита для мониторинга загруженности оборудования и формирования отчетов на основе полученных данных. Часто используются для сбора информации и последующей отправки ее на электронную почту системного администратора.

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

По умолчанию sar выводит на экран среднее значение по всем собираемым показателям. Вывод можно скорректировать опциями:

  • sar 4 8 — покажет статистику 8 раз с периодичностью в 4 секунды (цифры можно указать любые).
  • sar -u — добавляет в отображаемые данные все установленные в систему чипы.
  • sar -P 4 4 2 — отображает данные по четвертому ядру 2 раза с интервалом в 4 секунды.

Для формирования отчетов используется команда:

sar -o output.file 10 6 >/dev/null 2>&1 &

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

corefreq

Многокомпонентная низкоуровневая утилита, включающая в себя одноименный модуль ядра, демон (программу, работающую в фоновом режиме) и текстовую утилиту для управления на стороне клиента. Модуль ядра получает полный доступ к серверу и выводит данные с помощью демона, который работает с привилегиями суперпользователя, получая больше данных, чем другие подобные приложения.

CoreFreq заточен для работы с современные 64-битными процессорами из серий Atom, Core2, Nehalem и аналогичными из семьи AMD.

Чтобы включить CoreFreq:

Открываем файл с параметрами загрузка:

sudo nano /etc/default/grub

Добавляем в него строку:

GRUB_CMDLINE_LINUX=“nmi_watchdog=0”

Обновляем параметры загрузчика и перезапускаем систему:

update grub && reboot

Загружаем утилиту с зависимостями:

sudo apt-get install git dkms build-essential libc6-dev libpthread-stubs0-dev

Копируем CoreFreq с git:

git clone https://github.com/cyring/CoreFreq.git

Переходим в директорию с утилитой:

cd CoreFreq

Компилируем:

make

Устанавливаем модуль ядра:

sudo insmod corefreqk.ko

Запускаем одноименный демон:

sudo ./corefreqd -i &

Включаем текстовую утилиту CoreFreq:

./corefreq-cli

Как снизить нагрузку на процессор?

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

  1. Если дело в чрезмерной активности отдельных программ, то нужно приостановить их работу.
  2. Чтобы снизить нагрузку из-за деятельности поисковых роботов, надо сократить количество разделов сайта, которое им можно индексировать. Скрыть от ботов часть страниц можно, если указать их адреса в файле robots.txt.
  3. Если во всем виновата прожорливая CMS, стоит проанализировать установленные плагины. Возможно, какой-то из них работает некорректно и отнимает ресурсы, необходимые для нормального функционирования других компонентов сервера.
  4. Стоит сделать рефакторинг в структуре запросов в базе данных сайта.
  5. Проверить, нет ли на сервере вредоносного программного обеспечения.

Также не стоит забывать, что есть альтернативное решение — увеличение мощности сервера. Зачем бороться с нагрузкой, если можно сделать ее менее заметной для своего VDS? И для этого всего лишь надо арендовать более мощную «машину».

Итоги

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

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

Комментарии

С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email, который Вы использовали для входа на сайт.