[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