7

Когда я запускаю top команду, третья строка:

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

Откуда команда top получает эти данные? Получается ли он из /proc? Если да, каково точное местоположение?

2 ответа2

4

Вы спрашиваете о точном месте использования процессора. Это /proc/stat:

$ head -n 3 /proc/stat
cpu  1751981 185577 398478 28868975 69445 32 27028 0 0 0
cpu0 954878 88888 186567 14433502 19750 0 600 0 0 0
cpu1 797103 96688 211911 14435473 49694 31 26428 0 0 0

Формат поясняется в документации ядра (filesystems/proc.txt); Я выделил top аббревиатуры:

Самая первая строка "cpu" объединяет числа во всех других строках "cpuN". Эти числа определяют количество времени, которое процессор потратил на выполнение различных видов работы. Единицы времени в USER_HZ (обычно сотые доли секунды). Значения столбцов следующие слева направо:

  • us er: обычные процессы, выполняющиеся в пользовательском режиме
  • п с: niced процессы , исполняющие в пользовательском режиме
  • sy stem: процессы, выполняющиеся в режиме ядра
  • id le: большие пальцы
  • io wa it: ожидание завершения ввода-вывода
  • irq: обслуживание прерываний [жесткие прерывания привет ]
  • softirq: обслуживание softirqs [мягкие прерывания si ]
  • ул еа: непроизвольное ожидания
  • гость: работает нормальный гость
  • guest_nice: запуск приятного гостя

Общие сведения о вашем процессоре вы можете получить из /proc/cpuinfo , но это не связано с использованием процессора.

0

Procfs можно найти в /proc . Пожалуйста, прочитайте об этом: Изучение procfs

Procfs - это виртуальная файловая система в linux, смонтированная в /proc и предназначенная для нескольких целей, включая доступ к информации ядра в пользовательском пространстве или для отладки. Одной из особенностей, которая делает Linux особенным для меня, является доступ к информации о процессе в виде текстового потока. Многие команды linux (ps, top, pstree и т.д.) Полагаются на эту файловую систему для получения информации.

Вы можете просмотреть top исходный код, который можно найти в пакете coreutils GNU.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .