Page tree

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

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

При медленной работе сайта дополнительно рекомендуем воспользоваться сервисом PageSpeed Insights от Google, который анализирует скорость загрузки страниц и сообщает, каким образом можно оптимизировать работу сайта.

Также можно попытаться оптимизировать работу сайта за счет переноса каталога временных файлов MySQL в tmpfs.

top

Как было сказано выше, утилита top предустановлена в UNIX-системах, поэтому для запуска вам достаточно подключиться к серверу по SSH и выполнить команду top.

Вывод утилиты выглядит следующим образом:

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

Сведения о системе

Слева вверху указано текущее время системы, далее:

Up - время работы системы с последнего запуска.

User - количество текущих пользователей.

Load average - средняя нагрузка на сервер: отображаются значения за одну, пять и 15 минут назад. 

Tasks - общее количество запущенных процессов в разных статусах (running - выполняемые; sleeping - в ожидании; stopped - остановленные; zombie - "зомби", дочерние процессы, ожидающие завершения родительского процесса).

Cpu(s) - процент времени процессора, затраченного на выполнение процессов, в том числе:

us - пользовательские процессы (высокое значение данного показателя может указывать, в том числе, на проблемы в коде сайта, необходимость его оптимизации);

sy - процессы ядра;

id - неиспользуемые ресурсы (чем выше этот показатель, тем лучше);

wa - операции ввода/вывода, т.е. дисковые операции.

Mem, Swap - сведения об использовании оперативной памяти (total - общий объем, free - объем свободной памяти, used - объем использованной памяти).

Сведения о процессах

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

Обозначения столбцов:

PID - идентификатор процесса;

USER - пользователь, запустивший процесс;

PR - приоритет процесса;

NI - измененный приоритет (присвоенный пользователем с помощью команды nice);

VIRT - объем используемой виртуальной памяти (здесь выводится тот объем памяти, который был запрошен процессом, даже если фактически используется меньше);

RES - объем используемой оперативной памяти (в данном случае, если процесс запросил 50Мб памяти, а использует 10Мб, будет выведено 10Мб);

SHR - объем памяти, разделяемой с другими процессами (т.е.  память, которая может быть использована другими процессами);

S - статус процесса (running - запущен; sleeping - в ожидании; zombie - процесс-"зомби");

%CPU - процент использования процессорного времени;

%MEM - процент использования оперативной памяти;

TIME - общее время работы процесса;

COMMAND - имя процесса (команда, которой был запущен процесс).

Управление

Для работы с утилитой top используются следующие клавиши:

Пробел - обновить вывод 

M - сортировка по используемой памяти

P - сортировка по нагрузке на процессор (используется по умолчанию)

T - сортировка по времени работы процесса

A - сортировка по максимальному потреблению различных ресурсов

u - сортировка по имени пользователя (потребуется ввести имя пользователя)

k - завершить процесс (потребуется указать его идентификатор, PID)

n - изменить количество процессов в выводе (потребуется указать нужное количество)

c - вывести полный путь запущенного процесса (столбец COMMAND)

h - вывод справки

q - выход из программы

htop

В отличие от top, утилиту htop сначала необходимо установить на сервер:

apt-get install htop

И после запустить:

htop

Вывод команды выглядит следующим образом:

Аналогично выводу top, в верхней части представлена информация о системе, ниже - список процессов. Значения столбцов в htop те же, что в top (они описаны выше).

Сверху слева вы можете видеть данные о нагрузке каждого ядра процессора, объем занятой памяти, сведения о количестве процессов, значения load avearage (средней нагрузки) за последние 1, 5 и 15 минут и аптайм системы.

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

Чтобы отсортировать их по занятой памяти (или любому другому параметру), просто кликните на название нужного столбца, например MEM. Для обратной сортировки (от меньшего к большему) достаточно кликнуть на тот же столбец еще раз. Также для управления сортировкой можно использовать клавиши M (сортировка по памяти), P (по процессору), T (по времени), аналогично утилите top.

Дополнительно используются:

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

u - вывести процессы конкретного пользователя.

Для управления используются клавиши F1 - F10:

F1 - вывод справки

F2 - настройка вывода (добавление, удаление столбцов, отображение расширенной информации в верхнем блоке и пр.)

F3 - поиск процессов

F4 - фильтрация процессов (вывод процессов, имеющих в названии указанное слово)

F5 - вывод дерева процессов (родительские и дочерние процессы)

F6 - изменить тип сортировки

F7 / F8 - повышение / понижение приоритета

F9 - завершение процесса (в отличие от top, не требуется указание PID - просто выделите с помощью мыши или клавиатуры нужный процесс и нажмите F9. Для подтверждения завершения процесса нажмите Enter, для отмены - Esc).

F10 - выход из программы

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

  • No labels