Я не знаю, что и кто использует такое количество ЦП, машина представляет собой двухъядерный процессор с оперативной памятью 16 ГБ. Запуск Ubuntu 10.04
Кажется, что каждое ядро использует 10-20%, за исключением одного ядра, которое постоянно использует 100%.
На данный момент у меня работает около 14 виртуальных машин, у некоторых доступно 4 ядра, но у большинства из них только 1.
Вверху замечаю:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7873 root 20 0 530m 14m 3220 S 103 0.1 5597:41 kvm
Я пробовал использовать kvm_stat:
kvm statistics
efer_reload 2400 0
exits 2199561167 6100
fpu_reload 1244255128 136
halt_exits 4368568581 1189
halt_wakeup 1714293806 103
host_state_reload 7549984578 1572
hypercalls 0 0
insn_emulation 1398403526 3069
insn_emulation_fail 3 0
invlpg 767635659 37
io_exits 2822598937 395
irq_exits 1449081931 283
irq_injections 4773146061 1220
irq_window 125330658 8
largepages 0 0
mmio_exits 326399432 0
mmu_cache_miss 192709243 7
mmu_flooded 69103717 4
mmu_pde_zapped 259908526 15
mmu_pte_updated 156 0
mmu_pte_write 329155981 19
mmu_recycled 856835 0
mmu_shadow_zapped 192679259 5
mmu_unsync 19380 -6
nmi_injections 0 0
nmi_window 0 0
pf_fixed 6517240715 389
pf_guest 4434843050 217
remote_tlb_flush 582797544 34
request_irq 0 0
signal_exits 5 0
tlb_flush 1708903974 201
Но, честно говоря, я не понимаю, как это читать и как узнать, есть ли где-то узкое место. Как процесс может загружаться на 103%? Связана ли эта тема? Стоит ли волноваться или это нормальное поведение?
Если вы нажмете клавишу «c» внутри вверху, вы сможете увидеть полную команду и понять, какая виртуальная машина (но ps aux | grep 7873 тоже сделает это).
После того, как вы обнаружили, какая виртуальная машина генерирует эту нагрузку на ЦП, вы должны проверить ее, например, есть ли у нее какой-то зависший процесс или он завис (обычно 100% процесс kvm - это зависание виртуальной машины на этапе загрузчика).
Одно возможное объяснение: есть один назначенный ЦП, который отвечает за обслуживание прерывания для сетевого интерфейса. Этот назначенный ЦП отвечает за ВСЕ пакетов, входящих для ВСЕ Виртуальные машины. Этот назначенный ЦП затем прерывает ЦП, назначенный виртуальной машине для назначения пакета.
Ответ Intel на это - SR-IOV.. Если у вас очень быстрые сетевые интерфейсы и вы получаете большое количество пакетов, это может объяснить, почему вы испытываете такой эффект.
Также вы можете изучить настройку сетевых прерываний в Linux.
Удачи. Я хотел бы получить ответ, если это будет полезно :)