Когда мы запускаем top, мы иногда видим спящий процесс «S», который использует% CPU; Я ожидаю, что все спящие процессы будут использовать 0% ЦП, поскольку они неактивны. Я ожидал, что только запущенные процессы «R» будут активно потреблять% ЦП наверху. Например, посмотрите эти спящие процессы Oracle
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11975 oracle 15 0 16.8g 2.6g 2.6g S 8.9 5.5 56:28.38 oracle
5837 oracle 15 0 16.8g 1.8g 1.7g S 6.6 3.7 10:04.11 oracle
12248 oracle 15 0 16.8g 1.6g 1.6g S 5.9 3.4 12:02.33 oracle
21253 oracle 15 0 16.8g 1.6g 1.6g S 4.3 3.4 12:33.83 oracle
Я считаю, что активность ЦП, в данном случае для Oracle, состоит из множества коротких всплесков с точностью до 1 секунды для Top. Это означает, что счетчик использования обновляется, но Top не видит состояние «R», поскольку оно слишком короткое.
Есть предположения?
Это почти наверняка то, что происходит. В этом случае для Oracle использование ЦП состоит из множества коротких всплесков с точностью до 1 секунды для Top. Это означает, что счетчик использования обновляется, но Top не видит состояние «R», поскольку оно слишком короткое.