При мониторинге моей системы с помощью htop
столбец состояния процесса для большинства процессов под нагрузкой в основном S
и иногда переключается на R
Из моего понимания статуса документов S
означает, что процесс спит, а для R
он запущен. Но как спящий процесс может потреблять процессор столько, сколько я могу видеть на скриншоте ниже? Я ожидал бы нагрузку 0
большую часть времени для этих процессов.
Я подозреваю, что есть узкое место I/O
, так что вполне достаточно спящих процессов, ожидающих I/O
. Но в таком случае я не понимаю высокой нагрузки на процессор для спящих процессов. Может ли это быть результатом, например, множества переключений контекста, потому что I/O
не может обеспечить разумную пропускную способность, но предлагает ли очень мало данных довольно часто? Это означало бы, что центральные процессоры не могли бы использоваться иначе, ожидая успеха всех I/O
.
Или это может быть только проблема с отображением, потому что ожидание I/O
должно как-то отображаться, и это с точки зрения нагрузки, но на самом деле эти процессы не потребляют никакого процессора? В таком случае процессоры будут использоваться по мере необходимости для реальной обработки вещей.
Спасибо за понимание!