Я знаю wa
(в top
) измеряет время процессора при ожидании ввода-вывода. Об этом говорится во многих статьях.
Но меня смущает это, основываясь на 2 точках знаний:
Правильно?
Кажется, нет времени CPU ждать ввода / вывода ... Что происходит?
Если порекомендуете мне книги или статьи для дальнейшего чтения, тем лучше.
Состояние простоя ЦП разделено на два разных «подсостояния»: iowait
и idle
.
Если ЦП простаивает, ядро затем определяет, есть ли в настоящее время хотя бы один ввод-вывод для локального диска или удаленно смонтированного диска (NFS), который был инициирован этим ЦП. Если есть, значит CPU в состоянии iowait
. Если не выполняется никакого ввода-вывода, инициированного этим ЦП, ЦП находится в idle
штат.
Так, iowait
процент времени простоя процессора И есть хотя бы один выполняющийся ввод-вывод, инициированный этим ЦП.
В iowait
counter указывает, что система может обрабатывать больше вычислительной работы. Просто потому, что процессор в iowait
состояние не означает, что он не может запускать другие потоки или процессы на этом процессоре.
Так, iowait
это просто форма простоя.
Я не уверен на 100%, что понимаю вопрос, но есть некоторые идеи.
Здесь есть еще один вопрос, на который есть несколько хороших ответов: Может ли кто-нибудь точно объяснить, что такое IOWait?
Здесь есть хороший пост: http://veithen.github.io/2013/11/18/iowait-linux.html