top предоставляет постоянно обновляемое представление активности системы и работающих процессов. Оно полезно для формирования гипотезы о производительности, но один загруженный образец не доказывает причину проблемы. Сравнивайте несколько обновлений и сопоставляйте их с журналами и метриками конкретной нагрузки.
Использование процессов · Урок 1
Отслеживание процессов: top
Узнайте, как с помощью top интерпретировать нагрузку системы, CPU, память и активность отдельных процессов.
Чтение сводки системы
Обычное представление начинается со строк сводки, за которыми следует таблица процессов:
top - 18:06:26 up 6 days, 4:07, 2 users, load average: 0.92, 0.62, 0.59
Tasks: 389 total, 1 running, 387 sleeping, 0 stopped, 1 zombie
%Cpu(s): 1.8 us, 0.4 sy, 0.0 ni, 97.6 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 32099.0 total, 5276.3 free, 7031.2 used, 19791.5 buff/cache
MiB Swap: 32700.0 total, 32661.0 free, 39.0 used
Первая строка содержит текущее время, время работы, число вошедших пользователей и среднюю нагрузку за 1, 5 и 15 минут. Строка задач подсчитывает состояния процессов. Средняя нагрузка — не непосредственный процент CPU; в Linux она отражает выполняемые задачи и задачи в непрерываемом сне, поэтому интерпретируйте её вместе с числом CPU, активностью ввода-вывода и задержками.
Что представляют три значения средней нагрузки в top?
Интерпретация времени CPU
К распространённым полям CPU относятся:
us: время выполнения в пространстве пользователя.sy: время выполнения ядра.ni: время пространства пользователя для задач с изменённым nice.id: время простоя.wa: время простоя при наличии незавершённого запроса ввода-вывода.hiиsi: обработка аппаратных и программных прерываний.st: время виртуального CPU, забранное гипервизором для других гостевых систем.
Высокое значение wa может поддержать гипотезу об ожидании ввода-вывода, но не указывает устройство и не доказывает, что хранилище — единственное узкое место. До вывода проверьте задержки устройств и поведение приложения.
Что показывает поле CPU wa?
Чтение таблицы процессов
К важным столбцам обычно относятся:
PID,USERиCOMMAND: идентификатор, владелец и команда.S: состояние, например выполнение (R), сон (S), непрерываемый сон (D), остановка (T) или зомби (Z).%CPUи%MEM: измеренная активность CPU и доля физической памяти.TIME+: накопленное время CPU.VIRT: полное виртуальное адресное пространство, связанное с задачей.RES: резидентная физическая память без swap, относимая к задаче в данный момент.SHR: резидентная память, которая может использоваться совместно с другими процессами.
VIRT не равен объёму потребляемой физической оперативной памяти. Он может включать отображённые файлы, общие библиотеки, зарезервированное адресное пространство и страницы в swap. Даже RES следует интерпретировать осторожно, поскольку общие страницы усложняют отнесение памяти.
Какое поле ближе всего к физической памяти процесса, резидентной в данный момент?
Фокусировка и сортировка
Отслеживайте известные PID напрямую:
$ top -p 1234,5678
Внутри top нажмите P для сортировки по CPU, M для сортировки по памяти, 1 для переключения строк отдельных CPU и q для выхода в распространённых реализациях procps-ng. Нажмите h, чтобы открыть локальную интерактивную справку, поскольку клавиши и поля могут различаться.
До любого действия запишите PID, команду, время и несколько образцов. Кратковременное появление процесса наверху списка может быть нормальным, а его завершение способно вызвать потерю данных или сбой службы.
Какой запуск ограничивает представление процессом с PID 1234?
Урок завершён
Вы завершили Отслеживание процессов: top
Теперь вы можете использовать top для построения и проверки гипотезы о производительности системы.
Читайте среднюю нагрузку как нагрузку за временные интервалы, а не проценты CPU.
Сравнивайте категории CPU в нескольких образцах.
Отличайте виртуальное адресное пространство от резидентной памяти.
Сосредотачивайтесь на известных PID и проверяйте свидетельства до действий.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт