Виртуализация: vCPU, прикрепляющий с Хостом Гиперпоточности ЦП?

Я использую KVM/libvirt на сервере Linux с Core i7 2 600 ЦП, которые имеют следующую топологию ЦП (1 Сокет, 4 Ядра, 8 Потоков):

Physical | Logical
---------+--------
Core 0   | 0, 4
Core 1   | 1, 5
Core 2   | 2, 6
Core 3   | 3, 7

Я обычно выполняю 3 виртуальных машины на этом хосте, каждом с 2 виртуальными центральными процессорами. Для улучшения производительности путем сохранения кэшей горячими, я хотел бы прикрепить vCores VMs к фиксированным ядрам хоста.

Вопросом теперь является отображение ядер VM для хостинга ядер, рассматривая то, что хост ЦП использует Гиперпоточность:

Опция 1: Один VM на физическое ядро хоста

VM1: logical cores 1, 5
VM2: logical cores 2, 6
VM3: logical cores 3, 7

Таким образом, два виртуальных ядра VM были бы отображены на одноуровневых гиперпотоках на хосте ЦП. Гостевой код получил бы прибыль от местности кэша, поскольку два ядра хоста совместно используют некоторые кэши.

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

Опция 2: Распределенные ядра VM

VM1: logical cores 1, 2
VM2: logical cores 3, 5
VM3: logical cores 6, 7

Это отображение имеет преимущество, что, если VM испытывает вычислительную нагрузку на оба из ее двух виртуальных ядер, эта загрузка отображается на двух отдельных физических ядрах на хосте. Если никакой другой VM не является объектом загрузки в тот момент, первый мог бы использовать два физических ядра вместо только одного с Опцией 1.

VMs все главным образом веб-сервисы выполнения (Nginx, MySQL, PHP-FPM), таким образом, я знаю вопрос, имеют довольно теоретическую природу - но тем не менее я хотел бы знать.

1
задан 14 June 2015 в 11:42
2 ответа

Возможно, вы слишком много думаете об этом.

Ручное назначение ядер здесь может фактически привести к снижению производительности. В мире VMware мы не делаем этого, если нет особых требований, но для описанных вами рабочих нагрузок и приложений в этом нет необходимости. Пусть KVM планирует все и будет сделано. Если сомневаетесь, приобретите побольше жил и розеток. Но ЦП не будет ограничивающим фактором в таком небольшом развертывании.

4
ответ дан 3 December 2019 в 17:39

Вариант 1 не должен замедляться в большинстве случаев, но ОС и программы могут работать без сбоев при выполнении своих рабочих нагрузок. Это может накапливаться. Думаю, вариант 2 лучше, если ваш сосед не возражает против ~ крошечного ~ замедления.

0
ответ дан 3 December 2019 в 17:39

Теги

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