Понимание того, как читать и анализировать использование ресурсов, является критически важным навыком для любого пользователя Linux. Многие считают освоение инструментов командной строки лучшим способом изучить Linux с нуля, поскольку они дают глубокое представление о том, как работает Linux. Этот урок знакомит с top — мощной утилитой для отслеживания действий ваших процессов в реальном времени.
Понимание команды top
Мы кратко упоминали top ранее, но теперь углубимся в детали того, что она отображает. Команда top предоставляет динамический просмотр процессов и использования ресурсов системы в реальном времени.
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
KiB Mem: 32870888 total, 27467976 used, 5402912 free, 518808 buffers
KiB Swap: 33480700 total, 39892 used, 33440808 free. 19454152 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6675 patty 20 0 1731472 520960 30876 S 8.3 1.6 160:24.79 chrome
6926 patty 20 0 935888 163456 25576 S 4.3 0.5 5:28.13 chrome
Давайте разберем, что означает этот вывод. Вам не нужно это запоминать, но вы можете использовать этот урок в качестве справки.
Сводка по системе
Первые несколько строк предоставляют общую сводку о состоянии системы.
- 1-я строка: Это та же информация, которую вы увидите, выполнив команду
uptime. Она показывает текущее время, время работы системы, количество вошедших пользователей и среднюю загрузку системы за последние 1, 5 и 15 минут. - 2-я строка: Сводка по всем задачам (процессам), классифицированным как запущенные (running), спящие (sleeping), остановленные (stopped) или зомби (zombie).
Разбивка использования ЦП
Третья строка детализирует использование ЦП.
us: Процент времени ЦП, затраченного на выполнение пользовательских процессов без ницевания (not niced).sy: Процент времени ЦП, затраченного на выполнение ядра и его процессов.ni: Процент времени ЦП, затраченного на выполнение ницеванных (низкоприоритетных) пользовательских процессов.id: Процент времени ЦП, который простаивает (idle).wa: Процент времени ЦП, затраченного в ожидании завершения операций ввода-вывода (I/O). Высокое значение может указывать на узкое место на диске или в сети.hi: Процент времени ЦП, затраченного на обслуживание аппаратных прерываний.si: Процент времени ЦП, затраченного на обслуживание программных прерываний.st: Время ожидания (Steal time). В виртуализированных средах это процент времени ЦП, которое виртуальный ЦП ждет реальный ЦП, пока гипервизор обслуживает другой виртуальный процессор.
Информация о памяти и подкачке (Swap)
Четвертая и пятая строки показывают использование памяти и пространства подкачки соответственно. Это включает общие объемы, использованные и свободные объемы.
Список процессов
Основная часть вывода top — это список процессов, наиболее интенсивно использующих ресурсы.
PID: Уникальный идентификатор процесса.USER: Пользователь, владеющий процессом.PR: Приоритет планирования процесса.NI: Значение "nice", которое влияет на его приоритет.VIRT: Виртуальная память, используемая процессом. Это общий объем памяти, к которому процесс может получить доступ.RES: Резидентная память, используемая процессом. Это невыгруженная физическая память, которую использует задача. Понимание разницы между linux top virt res является ключом к анализу памяти.SHR: Общая память, используемая процессом.S: Состояние процесса:S=сон,R=выполнение,Z=зомби,D=непрерываемый сон,T=остановлен.%CPU: Процент времени ЦП, использованного этим процессом с момента последнего обновления.%MEM: Процент физической оперативной памяти, используемой этим процессом.TIME+: Общее время ЦП, которое процесс использовал с момента запуска.COMMAND: Имя команды или командная строка, запустившая процесс.
Вы также можете отслеживать конкретный процесс по его идентификатору, что полезно для сфокусированной отладки:
top -p 1