Когда я запускаю 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
? Если да, каково точное местоположение?
Вы спрашиваете о точном месте использования процессора. Это /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
, но это не связано с использованием процессора.
Procfs можно найти в /proc
.
Пожалуйста, прочитайте об этом: Изучение procfs
Procfs - это виртуальная файловая система в linux, смонтированная в /proc и предназначенная для нескольких целей, включая доступ к информации ядра в пользовательском пространстве или для отладки. Одной из особенностей, которая делает Linux особенным для меня, является доступ к информации о процессе в виде текстового потока. Многие команды linux (ps, top, pstree и т.д.) Полагаются на эту файловую систему для получения информации.
Вы можете просмотреть top
исходный код, который можно найти в пакете coreutils
GNU.