Огромная разница между выходом htop и ps aux

Я запускаю тест на Ubuntu 14.04. Когда я проверяю использование моего процессора с помощью "ps aux|grep service", тогда загрузка процессора составляет 0,1 от процесса, тогда как в htop для того же процесса CPU% составляет 12,3.

Кто-нибудь может сказать мне причину? или какое значение я должен считать правильным?

Спасибо

1 ответ

Решение

Они измеряют разные вещи.

От ps человек-страница:

   CPU usage is currently expressed as the percentage of time spent
   running during the entire lifetime of a process.  This is not ideal, 
   and it does not conform to the standards that ps otherwise conforms to.
   CPU usage is unlikely to add up to exactly 100%.   

От htop man-страница (я автор htop):

   PERCENT_CPU (CPU%)
        The  percentage  of  the  CPU  time  that the process is currently
        using.

Итак, в htop это процент от общего процессорного времени, используемого программой между последним обновлением экрана и текущим временем.

PercentageInHtop = (время простоя процессора, используемое процессом в течение последних 1,5 с) / 1,5 с

В ps это процент времени процессора, используемого программой, относительно общего времени, в течение которого она существует (т. е. с момента ее запуска).

PercentageInPs = (время бездействия процессора, используемое процессом с момента запуска процесса) / (время, прошедшее с момента запуска процесса)

То есть в вашем чтении это означает, что htop говорит, что служба занимает 12,3% вашего процессора сейчас, в то время как ps говорит, что ваш сервис провел 99,9% от общей простоя.

Другие вопросы по тегам