В Linux: «команда», что мы, sy, ni, id, wa, hi, si и st (для использования ЦП)?

Когда я выхожу из $ top в linux, я получаю результат, подобный этому ( см. здесь ).

Одна из строк имеет информацию об использовании процессора, представленную следующим образом:

Cpu(s): 87.3%us,  1.2%sy,  0.0%ni, 27.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Хотя я знаю определения каждого из них (гораздо ниже), я не понимаю, что именно означают эти задачи.

  • hi - что означает служебные аппаратные прерывания?
  • si - что означает прерывания программного обеспечения обслуживания?
  • st - они говорят, что это время в непроизвольном ожидании виртуального процессора, в то время как гипервизор обслуживает другой процессор (или) Время, украденное с виртуальной машины. Но что это значит? может ли кто-нибудь быть более ясным?

{Я перечислил все (us, sy, ni и т. д.), потому что это помогло бы другим людям найти то же самое. Эта информация не находится на страницах руководства.}

us: user cpu time (or) % CPU time spent in user space
sy: system cpu time (or) % CPU time spent in kernel space
ni: user nice cpu time (or) % CPU time spent on low priority processes
id: idle cpu time (or) % CPU time spent idle
wa: io wait cpu time (or) % CPU time spent in wait (on disk)
hi: hardware irq (or) % CPU time spent servicing/handling hardware interrupts
si: software irq (or) % CPU time spent servicing/handling software interrupts
st: steal time - - % CPU time in involuntary wait by virtual cpu while hypervisor is servicing another processor (or) % CPU time stolen from a virtual machine
169 голосов | спросил its_me 17 PM000000100000002831 2011, 22:27:28

2 ответа


83

hi - это время, затрачиваемое на обработку аппаратных прерываний. Аппаратные прерывания генерируются аппаратными устройствами (сетевыми картами, клавиатурным контроллером, внешним таймером, аппаратными сенами, ...), когда им нужно что-то сигнализировать CPU (например, данные получены).

Так как это может произойти очень часто, и поскольку они по существу блокируют текущий процессор во время их работы, обработчики аппаратных прерываний ядра записываются так же быстро и просто, насколько это возможно.

Если требуется длительная или сложная обработка, эти задачи откладываются с помощью вызова механизма softirqs. Они запланированы независимо, могут работать на любом процессоре, могут работать одновременно (не для аппаратных прерываний).

Часть жестких IRQ, блокирующих текущий CPU, и часть о том, что softirq могут работать в любом месте, не совсем правильны, могут быть ограничения, а некоторые жесткие IRQ могут прервать другие. Суб>

(Например, аппаратное прерывание с «данными», полученное с сетевой карты, могло просто хранить информацию, «где-то обслуживать эту карту», ​​и планировать программу softirq. Softirq будет тем, что инициирует фактическую маршрутизацию пакетов .)

si представляет время, затрачиваемое на эти softirqs.

Хороший обзор о механизме softirq (с небольшим количеством истории тоже) - это Я сделаю это позже: Softirqs, Tasklets, Bottom Halves, Task Queues, Рабочие очереди и таймеры (PDF, 64k).

st, "время кражи", имеет значение только в виртуализированных средах. Это означает время, когда реальный процессор не был доступен текущей виртуальной машине - он был «украден» с этой виртуальной машины гипервизором (либо для запуска другой виртуальной машины, либо для ее собственных нужд).

учет времени процессора документ от IBM содержит больше информации время кражи и учет процессора в виртуализированных средах. (Он нацелен на аппаратное обеспечение типа zSeries, но общая идея для большинства платформ одинакова.)

ответил Mat 17 PM000000100000004931 2011, 22:53:49
8
  • us - Время, проведенное в пользовательском пространстве
  • sy - Время, затрачиваемое на пространство ядра
  • ni - Время, затрачиваемое на выполнение процессов с использованием niced user (приоритет, определяемый пользователем)
  • id - Время, проведенное в режиме ожидания
  • wa - время ожидания на периферийных устройствах ввода-вывода (например, диск)
  • hi - Время, затрачиваемое на обработку подпрограмм аппаратного прерывания. (Всякий раз, когда периферийное устройство хочет, чтобы внимание обращалось на процессор, оно буквально тянет линию, чтобы сигнализировать CPU о ее обслуживании).
  • si - Время, затрачиваемое на обработку программных прерываний. (мир кода, вызывает процедуру прерывания ...)
  • st - время, затрачиваемое на принудительное ожидание виртуального процессора, в то время как гипервизор обслуживает другой процессор (украденный с виртуальной машины).
ответил Simon Rigét 11 Jpm1000000pmWed, 11 Jan 2017 23:11:38 +030017 2017, 23:11:38

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132