Действительно ли процессор занят во время iowait (%wa вверху) в Linux / EC2?
В 8-стороннем экземпляре Amazon EC2 (под управлением Linux 2.6.21) с 8 томами EBS и большим дисковым трафиком мы видим высокий%wa в верхней части (30-40%) и высокую загрузку в среднем (8-9). Насколько я понимаю, процессы, ожидающие ввода-вывода от томов EBS, учитываются в средней нагрузке (ps показывает несколько процессов в состоянии D, примерно столько же, сколько и средняя нагрузка).
Однако не ясно, что означает%wa. Действительно ли процессор занят ожиданием ответа от тома EBS или ядро планирует другой процесс на нем? Я ожидаю, что будет запланирован другой процесс; но потом я не понимаю, почему время в iowait выражается в процентах от общего времени процессора (если процентное значение не превышает 100%).
Пока мы не максимизируем емкость ввода / вывода томов EBS, меня это не беспокоит, но если процессоры будут связаны в ожидании ввода / вывода, я думаю, что наша машина исчерпает емкость процессора, прежде чем закончится I/O емкость.
2 ответа
ЦП может и будет использоваться для других процессов, при условии, что есть хотя бы один процесс, готовый для получения времени ЦП. Суть в том, что вы можете иметь систему ввода-вывода с каждым процессом, ожидающим завершения ввода-вывода, и, поскольку нет ничего, ожидающего время ЦП, нет причин планировать (и использовать) ЦП для чего-либо, кроме деятельность ядра... отсюда и термин I/O wait.
Попробуйте запустить vmstat 1
и посмотрите, есть ли числа больше 0 в столбце "b" (2-й столбец) на регулярной основе. Если это так, вы, вероятно, связаны с I/O. Видеть это иногда не имеет большого значения, постоянно видеть его с числами в диапазоне 2-3 - допустимо, но нежелательно, а более 5+ означает, что вы, вероятно, слишком заняты (хотя это зависит от того, насколько I/O ваша система может приспосабливаться, так что это может быть более или менее, в зависимости от). "B" означает "заблокированные процессы", например, "количество процессов, запланированных для выполнения, но заблокированных до завершения ввода-вывода".
Следовать за:
Существует известная ошибка с интенсивным вводом-выводом и более новыми планировщиками в ядрах серии 2.6. Попробуйте изменить свой планировщик, чтобы увидеть, оказывает ли он влияние.
man vmstat заявляет: "wa: время, потраченное на ожидание ввода-вывода. До Linux 2.5.41, включено в режим ожидания".