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

Производительность виртуальных ЦП между 1 или 2 виртуальными ЦП

В рамках виртуализации (преимущественно VMware) есть ли преимущество в производительности при использовании 1 ЦП с 4 ядрами или 2 ЦП с 2 ядрами? Предположим, приложение, работающее на виртуальной машине, может использовать два процессора.

Недостаточно значительный, чтобы оказать влияние. Корректировки больше для лицензирования. Например, Windows Server лицензируется на каждый слот процессора, поэтому вы заплатите больше за 1 ядро ​​и 4 процессора, чем за 1 процессор и 4 ядра.

То же самое и с другими продуктами, стоимость которых быстро растет с увеличением количества процессоров (посмотрите на вас, Oracle).

Пока там не должен будь здесь разница, мои тесты показали небольшое (но, тем не менее, чистое) повышение производительности в гостевых системах Windows при использовании одноядерной многосокетной эмуляции (например, 4 виртуальных ЦП отображаются как 4 сокета, одно ядро, один поток). Однако видимой разницы в гостевых системах Linux нет.

Тесты проводились на KVM с использованием гостевых систем Windows 2003R2 и 2008R2 и гостевых систем RHEL5 и RHEL6 для Linux. Я предполагаю, что Windows пытается выполнить некоторые дополнительные приемы планирования, которые либо превосходят на нескольких сокетах, либо терпят неудачу на нескольких ядрах.

Краткий ответ: Наверное, ничего такого, чего бы вы не заметили.

Длинный ответ: возможно. Проблема, которая приходит мне на ум, прежде всего, заключается в том, что современные процессоры работают намного быстрее, чем используемая ими основная память. Это основная причина, почему NUMA (неравномерный доступ к памяти) было изобретено. Процессоры на одном кристалле (например, два ядра на одном кристалле) будут совместно использовать один и тот же узел NUMA ... и оба они будут получать доступ к памяти с этого узла быстрее, чем они могут получить доступ к памяти с другого узла NUMA. Итак, если вы собираете компьютер с большим количеством ядер и много физических процессоров, помните о местонахождении узла NUMA. Если процессору требуется доступ к удаленной памяти, он будет работать медленнее.

NUMA не будет проблемой для вас, если на вашей машине всего один или два процессора, но я подумал, что все равно упомяну об этом, просто для полноты картины.

Здесь нет большой разницы. Основная цель обозначения ядер / сокета - предоставить варианты для программного обеспечения, которое может иметь требования к среде выполнения или лицензированию в зависимости от количества «физических» сокетов или ядер ЦП (кашель, базы ...)

Нет существенной разницы в производительности между несколькими ядрами на одном сокете и комбинацией нескольких сокетов, есть небольшая разница в работе, если вы включаете или требуете функцию горячего добавления ЦП виртуальной машины (при условии, что у вас есть лицензия Enterprise или выше).

Для горячего добавления ЦП вы добавляете несколько сокетов, а не ядер ... поэтому, если у вас есть один сокет с 4 ядрами, операция горячего добавления ЦП в vSphere приведет вас к двум сокетам и 8 ядрам.

В качестве альтернативы, если у вас есть два сокета по 2 ядра, горячее добавление приведет к трем сокетам и 6 ядрам.

Видеть: В VMware ESXi 5.x есть ли разница, если я выберу 2 ядра ЦП или 2 сокета ЦП?