top

Sep, 14, 2024

top

Отображает список процессов, загрузку CPU, память, время работы системы и другие ресурсы.

📖 man top (man7.org)


🖥️ Load Average

top - 11:51:13 up 37 min, 1 user, load average: 0.19, 0.42, 0.48

Load Average - среднее число процессов, находящихся в состоянии выполнения или ожидания CPU/I/O
за последние 1, 5 и 15 минут.

Показатель отражает общую конкуренцию за ресурсы, а не только загрузку процессора.

  • ≈ числу ядер → система работает стабильно.
  • Выше → CPU или I/O перегружены, процессы ждут ресурсов.
  • Ниже → система недозагружена, есть запас мощности.

💡 На многопроцессорных системах важно сравнивать Load Average
с количеством логических ядер, а не только физических.


⚙️ Tasks

Tasks: 295 total,   1 running, 294 sleeping,   0 stopped,   0 zombie

Раздел Tasks показывает состояние всех процессов:

  • total - всего процессов в системе
  • running - активно выполняются на CPU
  • sleeping - ждут события (ввода, ответа сети и т.д.)
  • stopped - приостановлены пользователем (Ctrl+Z или SIGSTOP)
  • zombie - завершились, но родитель ещё не освободил их ресурсы

🔩 %Cpu(s)

%Cpu(s):  0.5 us,  0.5 sy,  0.0 ni, 98.8 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st

Эта строка показывает, на что тратится процессорное время:

  • us (user) - время на пользовательские процессы

    Eсли us = 70%, значит 70% CPU заняты приложениями

  • sy (system) - работа ядра Linux: драйверы, системные вызовы

    Высокий sy может означать интенсивную работу с диском или сетью

  • ni (nice) - процессы с изменённым приоритетом

    Если вы запустили фоновый процесс с nice +10, его нагрузка отразится здесь

  • id (idle) - CPU простаивает

    id = 95% - ресурсов хватает, сервер простаивает

  • wa (IO wait) - ожидание операций ввода-вывода (диск, сеть)

    wa = 20% - CPU ждёт SSD, возможно, узкое место в I/O

  • hi (hardware interrupts) - обработка аппаратных прерываний

    Рост hi может говорить об интенсивном сетевом трафике

  • si (software interrupts) - обработка программных прерываний внутри ядра

    Высокий si - частые внутренние события системы

  • st (steal) - “украденное” время гипервизором при виртуализации

    Если st > 5%, гипервизор отдаёт CPU другим виртуальным машинам


🐏 Memory

MiB Mem :  15651.0 total,   2749.6 free,   6566.8 used,   7318.3 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   9081.4 avail Mem 
  • total - общий объём физической оперативной памяти (RAM), доступной системе
  • used - часть памяти, занятая активными процессами и ядром; освобождается только при завершении процессов
  • free - полностью неиспользуемая память, доступная немедленно
  • buff/cache - область, применяемая ядром для буферизации и кэширования данных; может быть быстро освобождена при необходимости
  • avail Mem - оценка реально доступной памяти для запуска новых приложений (учитывает free и часть buff/cache)
  • swap - пространство на диске, используемое как расширение RAM при нехватке физической памяти

📋 Process Table

PID    USER  PR NI VIRT    RES    SHR    S %CPU %MEM TIME+    COMMAND
116317 sasha 20 0  1412.9g 700936 113408 S 10.6 4.4  24:07.45 code
  • PID (Process ID) - Уникальный идентификатор процесса. Каждый процесс в системе имеет свой собственный PID.
  • USER - Пользователь, от имени которого запущен процесс. Это может быть обычный пользователь или система (root).
  • PR (Priority) - Это общий приоритет процесса, зависящий от NI и динамической корректировки ядра. Чем ниже значение, тем выше приоритет. Диапазон значений от 39 (минимальный приоритет) до -51 (максимальный приоритет для реалтаймовых процессов).
  • NI (Nice Value) - Уровень nice (приоритет) процесса. Положительные значения снижают приоритет, отрицательные — повышают.Диапазон значений от 19 (минимальный приоритет) до -20 (максимальный приоритет).
  • VIRT (Virtual Memory Size) - Объем виртуальной памяти, используемой процессом. Включает все выделенные страницы памяти, в том числе те, которые еще не загружены в RAM.
  • RES (Resident Set Size) - Реальный объем памяти (RAM), используемый процессом. Это то, что фактически занимается в оперативной памяти.
  • SHR (Shared Memory) - Количество памяти, разделяемой между процессами (например, через общие библиотеки).
  • S (Status) - Состояние процесса:
    • S: Спящий (sleeping).
    • R: Запущенный (running).
    • D: Неотложное ожидание (uninterruptible sleep). Процесс в состоянии D не может быть прерван сигналами.
    • T: Остановленный (stopped).
    • Z: Зомби-процесс.
  • %CPU - Процент использования CPU процессом.
  • %MEM - Процент использования оперативной памяти процессом.
  • TIME+ - Общее время, проведенное процессом в режиме пользователя и ядра.
  • COMMAND - Команда или имя процесса.
top | Aleksandr Suprun