Утилита top - одна из наиболее удобных в своей линейке утилит, предназначенная для мониторинга состояния сервера. Ее задача - отобразить общую нагрузку на сервер и его отдельные компоненты.
Вывод утилиты делится на две части: в верхней общая информация о системе, а в нижней - список запущенных процессов и информации о них.
Рассмотрим верхнюю часть вывода утилиты, тоесть, общую информацию о системе.
Использование процессорного времени (CPU):
Использования памяти - значения расписаны в статье о структуре виртуальной памяти.
Следующее значение - load average. Это один из важных параметров, поэтому детально его рассмотрим.
Данные load average выводятся в трёх временных интервалах - данные за 1 минуту, за 5 минут и за 15 минут. Эти числа отображают число блокирующих процессов в очереди на исполнение за определенный временной интервал. В данном случае, блокирующий процесс - это процесс, который ожидает ресурсов для продолжения работы. Как правило, происходит ожидание таких ресурсов, как центральный процессор, дисковая подсистема или сетевая подсистема. Высокие значения показателей load average говорят о том, что система не справляется с нагрузкой. Но как узнать какое значение load average является нормальным? Всё зависит от количества ядер.
Рассмотрим ситуацию, когда у нас CPU с одним ядром, отталкиваясь от значений load average во временных интервалах за 5 и 15 минут.
Load average | Состояние системы |
< 0.7 | Все в порядке. Система практически не нагружена |
0.7 - 1 | Система нагружена. Следует найти и определить причину нагрузки системы для избежании проблем в дальнейшем. |
1-5 | Система сильно нагружена. Необходимо в срочном порядке определить причину высокой нагрузки и устранить ее. |
> 5 | Система критически нагружена. Сервер может подвисать и работать очень медленно, при обработке запросов "торможения", доступ к серверу затруднён. |
Обратите внимание, что высокий показатель load average может быть вызван большим количеством процессов, выполняющих в данный момент операции чтения/записи. То есть, load average > 1.00 на одноядерной машине не всегда говорит о том, что в системе отсутствует запас по загрузке процессора. Требуется более детальный анализ ситуации.
Также, стоит обратить внимание на тот факт, что максимальная производительность системы достигается при load average > 1, тоесть, в отдельных случаях есть смысл держать load average повыше, чтобы более эффективно нагрузить "железо", в ущерб времени обработки отдельного запроса.
Еще один важный аспект. При load average больше 5, работа системы расценивается как неустойчивая. Некоторые демоны прекращают приём новых запросов при высоких уровнях загрузки (например Sendmail прекращает приём запросов при load average равным или больше 12). Если загрузка достигает 20-30, то скорей всего система окажется в ситуации, называемой "спираль смерти", т.е. новые процессы создаются быстрее, чем система может их выполнить. "Death Spiral" - один из редких случаев, когда может понадобится перезагрузить сервер.
Обратите внимание на отображениее load average в мультипроцессорных системах. В мультипроцессорных системах загрузка вычисляется относительно количества доступных процессорных ядер. 100% загрузка обозначается числом 1.00 для одноядерной машины, числом 2.00 для двуядерной, 4.00 для четырехъядерной и т.д.
Продолжим изучение утилиты top. В нижней части вывода, мы можем получить следующую информацию о процессах.
При использовании утилиты top, поддерживаются ключи, для работы в интерактивном режиме, которые сортируют, фильтруют или видоизменяют вывод. Рассмотрим некоторые из них
Re: Top - интерактивный мониторинг
Спасибо