Назад | Перейти на главную страницу

top vs vmstat в Debian squeeze / xen

Я использую squeeze DomU на xen 4.0.1, который полностью выгружен. Я замечаю разницу в состояниях процессора между iostat и top, например:

верх (в каждом итэре):

Cpu0  :  0.2%us,  2.0%sy,  0.0%ni, 94.2%id,  2.7%wa,  0.0%hi,  0.0%si,  0.9%st

iostat -x 3 (первый iter):

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.19    0.00    1.98    2.69    0.88   94.26

iostat -x 3 (последующие итоги):

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.00    0.00  100.00

Прав ли я, если предполагаю, что top показывает мне накопленные проценты, а не разницу между итерацией сейчас и сейчас-1? Я знаю, что top понимает кумулятивный режим, но он отключен для меня и должен влиять только на отображение процесса, а не на статистику состояния процессора.

Ошибка? Может быть, Xen имеет отношение?

С уважением

Тим

top, vmstat (и другие подобные xstats вы можете использовать) получить их информацию из /proc/stat Попробуйте перехватить этот виртуальный файл, вы увидите счетчики для ЦП в целом, плюс по одной строке для каждого аппаратного потока и некоторые другие счетчики прерываний.

Цифры, которые вы видите для ЦП, - это номера ядер. миг что прошло так как система загрузилась в различных государствах.

В то время как первая итерация vmstat просто покажет вам относительные проценты, основанные на одном чтении этих счетчиков (которое, как вы говорите, основано на совокупных счетах), top фактически опрашивает счетчики дважды в течение примерно 0,5 секунды, прежде чем вы увидите начальное отображение, поэтому ( возможно, это немного неточно) первое, что вы увидите, - это чтение текущих соотношений.

Для подтверждения попробуйте запустить: strace -e open top |grep "/proc/stat" и вы увидите два быстрых прочтения большей части /proc/, за которым следует одно последующее чтение за такт. Вот почему вы всегда получаете небольшую задержку до появления вершины.

Насколько мне известно, в ядре нет регистров, отслеживающих дельты для немедленного доступа программ пользовательского пространства. Он подходит для средней нагрузки, поддерживая три скользящих средних количества «запущенных» процессов в разные интервалы времени; но ничего подобного по загрузке ЦП.

Итак: не баг, а по дизайну.