Что создает ожидание ввода-вывода ЦП, но никаких операций с диском?


12

У меня процессорное ожидание ввода / вывода около 50%, но когда я запускаю, iostat 1он показывает, что активность диска практически отсутствует.

Что вызывает ожидание без iops?

ПРИМЕЧАНИЕ. Здесь нет файловых систем NFS или FUSE, но используется виртуализация Xen.

введите описание изображения здесь


Какой дистрибутив? Какая версия?
ZaMoose

2
Кроме того: это гипервизор Xen или виртуальная машина с iowaits?
ZaMoose

Имеет ли iotopпоказать вам что - нибудь?
Янне Пиккарайнен,

Ответы:


7

NFS может сделать это, и меня не удивит, если другие сетевые файловые системы (и даже устройства на основе FUSE) будут иметь подобные эффекты.


Спасибо, но в этом случае нет ни NFS, ни FUSE. Я добавлю это к вопросу тоже.
Джейсон Коэн

6

Есть ли вероятность, что другие виртуальные машины на сервере перебивают диск?

Я знаю с виртуализацией, что вы можете получить некоторые странные результаты, если узел хоста перегружен.


Верно, но это должно быть в краже% вместо io%, верно? Или там тоже можно пересечь?
Джейсон Коэн

3
Кража происходит, когда доступно меньше ресурсов ЦП, чем запрашивается виртуальными машинами. Если физический диск перегружен, ваши процессы будут тратить много времени в iowait, ожидая своей очереди на диске, даже если они не сильно бьют по диску.
lbft

Да, это. Смотрите другой вопрос с тем же ответом на serverfault.com/a/209031/57468
mattdm

3

Если это среда Amazon EC2 Xen, использующая хранилище на основе экземпляров, попросите Amazon проверить работоспособность хоста, содержащего этот образ.

Если это среда Xen, к которой вы можете получить доступ к гипервизору, проверьте IOwait извне на наличие образа диска (файл, сеть, LVM-фрагмент и т. Д.), Используемого для устройств xvda и xvdb. Вы также захотите проверить систему ввода-вывода, в общем, для гипервизора, поскольку другие дисковые устройства могут монополизировать ресурсы системы.

iostat -txk 5

обычно хороший стартовый диагностический инструмент. Он берет 5-секундные сводки ввода / вывода для ВСЕХ доступных ему устройств и, таким образом, полезен как с образом ВМ, так и без него.


2

Проверьте ваши доступные файловые дескрипторы / иноды. Когда вы достигнете предела, они меняются местами и имитируют Айовит

редактировать

Я видел, что вы используете xen, посмотрите текущие прерывания, вы можете обнаружить, что blkif выше, чем обычно.

Немного поздно, но установите munin, и это действительно поможет в дальнейшей отладке.


2
sudo sysctl vm.block_dump=1

Затем проверьте dmesg, чтобы увидеть, что выполняет чтение / запись блока или загрязняет inode.

Также проверьте ограничение nofile в limit.conf, процесс может запрашивать больше файлов, чем разрешено открывать.


1

ВНИМАНИЕ: HDPARM ОПАСЕН, ВСЕГДА ПРОЧИТАЙТЕ О КОМАНДЕ, которую ВЫ ИСПОЛЬЗУЕТЕ!

Если никакие другие виртуальные машины не нагружают жесткий диск (и), сделайте

hdparm -f

на базовом физическом диске (ах). Возможно, кэш диска не работает точно. Это очистит данные, хранящиеся в кэше, и вы сможете постоянно контролировать ввод-вывод, собирается ли он снова расти после сброса. Если да, то это будет проблема с кешем.


0

Со средней нагрузкой я видел увеличение количества заблокированных сетевых операций (то есть длительных вызовов на внешний сервер БД). Я не знаю точно, но я предполагаю, что сетевой ввод-вывод может привести к увеличению загрузки ЦП? Кто-нибудь может подтвердить?


1
В большинстве современных машин нет. Большинство, если не все современные системы имеют сетевые адаптеры с поддержкой DMA для предотвращения именно такой ситуации.
ZaMoose


0

На моих машинах NFS является крупнейшим IO-WAIT "производителем". У меня в ноутбуке SSD, который работает очень быстро, поэтому проблема «реального ввода-вывода» не в этом. Тем не менее, у меня иногда много ожидания ввода-вывода из-за моих подключенных NFS-ресурсов.

Иногда кажется, что SCP также приводит к IO Wait, но в гораздо меньшей степени.


0

Это может быть что угодно. Это просто означает, что что-то ожидает завершения операции ввода-вывода. Вы можете выяснить, что это за процесс, через ps, затем подключить к нему gdb и проверить обратную трассировку, чтобы определить, какой вызов зависает (обычно это какой-то материал, связанный с сетью, или внезапно отключенный диск). Для получения информации о fd, проверьте / proc.


0

Я также столкнулся с подобной проблемой прямо перед тем, как вышел из строя диск в RAID-массиве, и некоторые SATA-кабели с жесткими изгибами начали выходить из строя.

Загрузка ЦП составляла около 0%, но 1 или более ЦП в четырехъядерной системе тратили 100% своего времени в IOwait в течение продолжительных периодов времени (обнаруживается с помощью topмногострочного дисплея ЦП) при очень низких IOps и пропускной способности (найдено через iostat), но прерывистая высокая активность прерывания. Интерактивное использование командной строки было болезненным при любом доступе к диску (т. emacsЕ. Автоматическом сохранении из чьего-либо сеанса), но в остальном терпимо по прошествии периодов IOwait (и, вероятно, операции выполнялись успешно после многих попыток).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.