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

Использование CPU MongoDB вверху сбивает с толку

У меня есть виртуальная машина Ubuntu 12.04, работающая в VirtualBox, на которой есть весь кластер MongoDB (4 узла данных, один узел конфигурации и маршрутизатор mongos). Когда я смотрю на «верх», я вижу, что каждый из этих процессов занимает 5–15% процессорного времени. каждый. Но когда я смотрю на общий процент использования ЦП в верхней части, он говорит, что 98% простаивает. Виртуальной машине назначено 8 ядер ЦП, но даже в этом случае, как складываются эти выходные данные?

top - 20:53:31 up 9 min,  2 users,  load average: 0.46, 0.76, 0.49
Tasks: 190 total,   1 running, 189 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  1.9%sy,  0.0%ni, 98.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8177528k total,  3517632k used,  4659896k free,    84696k buffers
Swap:  4191228k total,        0k used,  4191228k free,  1578544k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1709 root      20   0 7692m  47m  19m S   16  0.6   0:45.53 mongod
 4215 ben       20   0 83964 3340 1840 S    9  0.0   0:32.92 mongos
 1704 root      20   0 6672m  47m  19m S    8  0.6   0:46.89 mongod
 1693 root      20   0 6717m  46m  19m S    6  0.6   0:45.33 mongod
 1695 root      20   0 6717m  46m  19m S    6  0.6   0:43.44 mongod
 1696 root      20   0  230m  46m  19m S    5  0.6   0:43.47 mongod

16 + 9 + 8 + 6 + 6 + 5 = 50% от одного ядра процессора. 50% / 8 ядер = 6% от общего времени процессора. И это без учета количества дополнительных процессов, каждый из которых занимает 1-2%. Как можно сказать, что 98% простоя?

Думаю, это связано с представлением топа. Например, значения в столбце% CPU основаны на прошедшем времени (как написано на верхней странице руководства). Смотрите также этот вопрос.