Производительность сервера в реальном времени можно посмотреть с помощью утилиты Top. Характеристика Load average показывает нам о количестве процессов ожидающих своего выполнения. По Load average как правило измеряют производительность сервера.
Производительность также проверяется с помощью таких утилит как htop, uptime, top, w и многие другие. Во всех есть такой параметр Load averag. Разберем его подробней.
Состоит из трех групп цифр.
load average: 0.66, 0.77, 0.82
Проще говоря это интервалы времени, за которые была снята нагрузка, а именно 1 минута, 5 минут и 15 минут, соответственно. Как правило происходит ожидание ресурсов ввода/вывода дисковой подсистемы, центрального процессора или ввода/вывода сетевой подсистемы.
Высокий показатель нагрузки Load average сообщает, что система не справляется с высокой нагрузкой на сервер. Речь идет о всем сервере, а не об отдельных агрегатах. В моей практике был зафиксирован пик:
load average: 19.12, 14.41, 7.33
Это очень большой показатель, жесткие тормоза. Проблема с производительностью жестких дисков. Показатель Load average выше 3-х это уже критично.
Что еще можно вытащить полезного из команды Top.
Первые два значения как раз и показывают нагрузку на Cpu.
Cpu(s): 21.2%us, 3.3%sy, 0.0%ni, 64.7%id, 10.3%wa, 0.1%hi, 0.5%si, 0.0%st
Если нажать на кнопку "1", то команда Top отобразит все процессоры и по каждому - соответствующую нагрузку.
%us - это и есть сама нагрузка на процессор
%sy - это нагрузка на Cpu взято самой системой
%ni - это процент использования процессорного времени процессами с измененным nice
%id - это простой Cpu
%wa - это процент простоя связанного с вводом/выводом
%hi - это процент времени, которое процессор тратит на обработку прерываний на уровне железа (IRQ)
%si - это то же, что и %hi, только для софт-прерываний
Далее идет использование физической памяти и файла подкачки.
Mem: 12186524k total, 11711644k used, 474880k free, 272768k buffers
Swap: 8388600k total, 1238000k used, 7150600k free, 5251316k cached
В памяти первый параметр - это общее количество памяти, второй - использовано, далее - доступно и использовано под буфер. Те же параметры и для файла Swap.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID - id процесса по которому можно убить процесс
USER - пользователь из под которого запущен процесс
PR - уровень/приоритет процесса
NI - nice процесса
VIRT - виртуальный размер процесса. Общее количество памяти, которое способна использовать программа. VIRT = DATA + CODE + SWAP + SHR.
RES - использование физической памяти
SHR - количество памяти которое потенциально может задействовать с другими программами при взаимодействии
SWAP = VIRT - RES
S - состояние процесса:
%CPU - процент использования центрального процесса
%MEM - процент использования памяти
TIME+ - время работы процесса
COMMAND - имя процесса (кнопка С дает возможность посмотреть и ключи с которыми запущен процесс)