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

Ядро процессора KVM 1 загружено на 100%, а другие - на нагрузку 10-20%

Я не знаю, что и кто использует такое количество ЦП, машина представляет собой двухъядерный процессор с оперативной памятью 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.

Удачи. Я хотел бы получить ответ, если это будет полезно :)