Делая top
чтобы проверить io wait, я получаю эти цифры:
Cpu(s): 6.7%us, 1.4%sy, 1.2%ni, 85.5%id, 5.0%wa, 0.0%hi, 0.3%si, 0.0%st
Глядя на эти цифры (% us ~ =% wa), означают ли они, что:
При оценке этих цифр нужно быть осторожным.
IOWait в этом контексте - это мера времени в течение заданного периода, в течение которого ЦП (или весь CPUS) находился в режиме ожидания, потому что все выполняемые задачи ожидали выполнения операции ввода-вывода.
В вашем примере, если у вас есть 20 процессоров, и одна задача действительно загружает диск, эта задача (по сути) тратит 100% своего времени в IOWait, впоследствии процессор, на котором выполняется эта задача, тратит почти 100% своего времени на IOWait. Однако, если 19 других процессоров фактически простаивают и не используют этот диск, они сообщают 0% IOWait. Это приводит к среднему проценту IOWait, равному 5%, тогда как на самом деле, если бы вы посмотрели на использование вашего диска, это могло бы дать 100%. Если приложение, ожидающее на диске, критично для вас - эти 5% несколько вводят в заблуждение, потому что задача в узком месте, вероятно, имеет гораздо более высокие проблемы с производительностью, чем 5% медленная.
ожидающих процессов ЦП почти столько же, сколько рабочих? (=> плохо)
Наверное, помните, что по большей части процессоры запускают задачи, а задачи - это то, что запрашивают IO. Если две отдельные задачи заняты запросом к одному и тому же диску на двух отдельных ЦП, это приведет к тому, что оба ЦП будут на 100% IOWait (а в примере с 20 CPU - на 10% от общего среднего IOWait).
Обычно, если у вас много задач, требующих ввода-вывода, особенно с одного и того же диска, плюс этот диск используется на 100% (см. iostat -mtx
) тогда это плохо.
рабочие процессы ждут 5,0% от своего плана выполнения? (=> в этом случае хорошо)
Нет. Рабочие процессы почти наверняка ожидают ввода-вывода на полную ставку. Это просто средний случай отчета («другие процессоры не заняты») искажает процент или тот факт, что у процессора есть много задач для выполнения, многие из которых не нуждаются в вводе-выводе.
Как правило, в многопроцессорной системе процент IOWait, равный количеству процессоров, которые вы разделили на 100, вероятно, стоит изучить.
что-то другое
См. Выше. Но обратите внимание, что приложения, которые выполняют очень тяжелую запись, регулируются (прекратите использовать обратную запись, начните запись непосредственно на диск). Это приводит к тому, что эти задачи производят высокий IOWait, в то время как другие задачи на том же процессоре, записывающие на тот же диск, этого не делают. Так что исключения действительно существуют.
Также обратите внимание, что если у вас есть 1 ЦП, выделенный для выполнения 2 задач, один - это интенсивное чтение / запись ввода-вывода, а другой - интенсивный пользователь ЦП, то в этом случае ЦП будет сообщать о 50% IOWait, если у вас есть 10 таких задач, как это будет 10% IOWait (и ужасная нагрузка), поэтому можно указать гораздо меньшее количество, чем то, что на самом деле может быть проблемой.
Я думаю, тебе действительно нужно взглянуть на iostat -mtx
чтобы получить некоторые показатели использования диска, и pidstat -d
чтобы получить некоторые показатели для каждого процесса, затем подумайте, могут ли приложения, обращающиеся к этим дискам таким образом, вызвать проблему, или другие потенциальные приложения, которые воздействуют на эти диски, могут вызвать проблему.
Показатели ЦП действительно служат индикаторами основных проблем, они носят общий характер, поэтому нужно понимать, где они могут быть слишком вообще это хорошо.
Это означает, что 5% времени ЦП тратится на ожидание завершения дискового ввода-вывода, а 6,7% времени ЦП тратится на фактическое выполнение обработки, необходимой для процесса пользователя.
Проверьте вывод vmstat; например vmstat 1 30
пока процесс подсчитывается в столбце b
не накапливается ты в порядке. Столбец b
указывает количество процессов в непрерываемом состоянии (состояние D), которые заблокированы до завершения операции ввода-вывода диска.
Так ответь на твои вопросы
Нет времени примерно того же, но это не обязательно проблема. Пока у вас нет проблемы, когда процессы начинают накапливаться в состоянии D, вы в порядке. Улучшения могут включать в себя добавление большего объема ОЗУ, чтобы было больше места для кэша страниц (diskcache), чтобы уменьшить количество операций чтения с диска, и, скорее, чтения из кеша памяти, настройки планировщика диска.
Это часть процессорного времени, затрачиваемого на обработку пользовательских процессов; здесь не о чем беспокоиться, особенно при таком простое 85.5%id
Время процессора
Состояние ожидания - это когда процесс, который в противном случае может быть запущен, останавливается в ожидании ввода-вывода. Это признак соперничества, обычно за дисковые ресурсы.
Это означает, что некоторые из ваших процессов работают не так быстро, как могли, но это вполне нормально.