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

CPU 100% простаивает, но все еще показывает среднюю нагрузку

У меня есть блейд-сервер с CentOS 6.4.

В состоянии простоя он показывает постоянную среднюю нагрузку более 1. Однако я подготовил другую машину с таким же оборудованием и версией CentOS, и ее средняя загрузка остается около 0, когда она простаивает.

Вывод команды top выглядит следующим образом:

top - 10:23:04 up 156 days, 18:15,  1 user,  load average: 1.08, 1.35, 1.31
Tasks: 534 total,   1 running, 533 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  65959040k total, 10021484k used, 55937556k free,   167092k buffers
Swap: 32767992k total,    13884k used, 32754108k free,  7084024k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
20951 root      20   0 15396 1608  952 R  0.3  0.0   0:01.52 top
    1 root      20   0 19352  684  472 S  0.0  0.0   0:01.64 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.03 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:15.31 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:12.32 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    6 root      RT   0     0    0    0 S  0.0  0.0   0:17.45 watchdog/0
    7 root      RT   0     0    0    0 S  0.0  0.0   0:16.26 migration/1
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1
    9 root      20   0     0    0    0 S  0.0  0.0   0:18.51 ksoftirqd/1

Какой процесс приводит к тому, что средняя загрузка системы превышает 1 при полном бездействии?

Средняя нагрузка не означает то, что вы думаете. Дело не в мгновенном использовании ЦП, а скорее в том, сколько процессов ожидают запуска. Обычно это из-за того, что многим нужен процессор, но не всегда. Распространенный виновник - это процесс, ожидающий ввода-вывода - диск или сеть.

Попробуйте бежать ps -e v и ищем флаги состояния процесса.

state    The state is given by a sequence of characters, for example, "RWNA". The      first character indicates the run state of the process:
D    Marks a process in disk (or other short term, uninterruptible) wait.
I    Marks a process that is idle (sleeping for longer than about 20 seconds).  
L    Marks a process that is waiting to acquire a lock.
R    Marks a runnable process.
S    Marks a process that is sleeping for less than about 20 seconds.
T    Marks a stopped process.
W    Marks an idle interrupt thread.
Z    Marks a dead process (a "zombie").

Это из ps manpage, так что вы можете найти там более подробную информацию - R и D процессы, вероятно, представляют особый интерес.

Ваш главный результат содержит:

Tasks: 534 total,   1 running, 533 sleeping,   0 stopped,   0 zombie

Этот 1 запущенный процесс является причиной вашей средней нагрузки. Найдите его и выясните, чем он занимается. (Изменить: как упоминалось в комментариях - это running процесс вероятно top. Так что игнорируйте это)