Что прикрепление CPU означает в контексте гипервизора KVM с несколькими виртуальными машинами

Я смотрю на конфигурирование гипервизора KVM, чтобы иметь некоторые виртуальные машины.

Гипервизор KVM имеет 8 физических ядер (16 с HyperThreading). Я хочу создать 8 виртуальных машин на нем, но я не могу понять то, что различие будет прикрепление CPU иметь на нем.

Что будет различием, когда я прикреплю каждый VM к различному ядру по сравнению с тем, когда я прикрепляю весь VMs ко всем ядрам (путем установки привязки на CPU 0-15)

Это будет иметь какие-либо выигрыши в производительности?

Я предполагаю, что буду обладать некоторыми кэширующимися преимуществами, но там буду различием, если я захочу выполнить трафик ко всему VMs?

1
задан 12 August 2014 в 04:42
2 ответа

Пиннинг процессора гарантирует, что ВМ получит процессорное время только от определенного процессора или набора процессоров. Если у вас нет конкретной причины для пиннинга, обычно в этом нет необходимости.

.
2
ответ дан 3 December 2019 в 18:44

Я уверен, что вы можете получить прирост производительности, если вы подключите каждую ВМ к определенным ядрам процессора, а также ограничите гипервизор одним или двумя другими ядрами.

Это позволит Вашим ВМ оптимально использовать кэши L1 и L2, специфичные для конкретного процессора, и их не будут беспокоить прерывания от контроллеров сетевых карт и систем хранения данных.

С другой стороны, я ожидаю, что гипервизор уже пытается направить события процессора одного и того же виртуального процессора на одно и то же физическое ядро, и я сомневаюсь, что это будет значительный прирост производительности , если Вы вручную надавите на что-то более строгое.

Недостатки этого также довольно очевидны, когда вы назначаете виртуальным гостям больше ядер, чем доступные физические ядра, маловероятно, что ваше ручное пиннингование процессора делает работу лучше, чем гипервизор. Это также будет адом, когда вы будете использовать живые миграции.

1
ответ дан 3 December 2019 в 18:44

Теги

Похожие вопросы