[Sysadmins] OpenVZ: CPU idle и iowait в контейнере
Alex Moskalenko
mav на elserv.msk.su
Вт Июн 26 11:56:32 MSK 2012
Здравствуйте!
После установки ядра 2.6.32-ovz-el-alt70 столкнулся с тем, что внутри
контейнеров перестали учитываться iowait и idle CPU time в /proc/stat.
В результате имеем следующую картину в контейнере:
1) cat /proc/stat
cpu 265519 32541 83101 0 0 0 0 4758
cpu0 110591 6482 22605 0 0 0 0 1610
cpu1 66653 11526 26524 0 0 0 0 1498
cpu2 44562 5746 14750 0 0 0 0 812
cpu3 43711 8786 19221 0 0 0 0 836
intr 0
swap 0 0
Учитываются usr,sys,nice,sirq. Остальное всегда 0;
2) vmstat в контейнере падает:
vmstat 1 999
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----
r b swpd free buff cache si so bi bo in cs us sy
id wa st
0 0 0 1867204 0 391488 0 0 1063 748 0 1096 77
22 0 0 1
Floating point exception
Похоже, что происходит это в не сильно загруженных контейнерах, когда за
1 период измерений usr,sys,nice и sirq оказываются нулями, в результате
чего при расчете процентов vmstat делит на 0;
3) top в контейнере показывает или полное отсутствие загрузки CPU (то
есть по нулям все, включая idle), или неадекватные цифры sys,user и nice
(причина похоже в том, что idle и iowait всегда 0, из-за чего
неправильно считается процентное отношение загрузки);
4) Monit в контейнере также пказывает неадекватные цифры загрузки CPU, о
чем постоянно жалуется.
На ядре 2.6.32-ovz-el-alt60 подобных проблем не замечалось. Среди
изменений между alt60 и alt70 встречаются
[fairsched] accuracy of idle/iowait time stats reported through
/proc/stat has been increased (PCLIN-30724) в 042stab056.8,
[scheduler] idle time stat reported by /proc/stat has been corrected
(PCLIN-30773) в 042stab056.11.
Подскажите пожалуйста - это такая политика партии теперь - не считать
idle в контейнерах и нужно отключать мониторинг загрузки CPU в них, или
это все-таки баг?
--
WBR, Alex Moskalenko
Подробная информация о списке рассылки Sysadmins