Назад | Перейти на главную страницу

Что такое IOWait

Я знаю, что метрика IOWait - это количество времени, в течение которого процессор ожидает ввода-вывода.

Насколько я понимаю, IOWait всегда ссылается на disc io. Но почему так? Почему сетевой ввод-вывод, предположительно связанный с шиной в локальной системе и ввод-вывод для процессора, не влияет на IOWait?

Кроме того, может ли процесс, желающий читать с диска, вызвать IOWait? Или ожидание ввода-вывода всегда является признаком попытки процесса записи на диск?

Я знаю, что метрика IOWait - это количество времени, в течение которого процессор ожидает ввода-вывода.

Почти. IOWait - это время, когда процессор простаивает, потому что ни одна задача не готова к запуску, и по крайней мере одна задача не готова к запуску, потому что она ожидает ввода-вывода.

Насколько я понимаю, IOWait всегда ссылается на disc io. Но почему так? Почему сетевой ввод-вывод, предположительно связанный с шиной в локальной системе и ввод-вывод для процессора, не влияет на IOWait?

Это относится к «быстрому» вводу / выводу. Это включает дисковый ввод-вывод, но не большую часть сетевого ввода-вывода. Сетевой ввод-вывод подразумевает некоторую связь по шине в локальной системе, но обычно предполагает ожидание чего-либо от удаленных систем. По этой причине он считается «медленным» вводом-выводом.

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

Кроме того, может ли процесс, желающий читать с диска, вызвать IOWait? Или ожидание ввода-вывода всегда является признаком попытки процесса записи на диск?

Это может случиться в любом случае. Чаще всего это происходит с чтением, потому что очевидно, что процесс не может продвигаться вперед, пока не завершится ввод-вывод. Но это также может произойти при записи, например, если недостаточно оперативной памяти для буферизации записи.