В рамках виртуализации (преимущественно 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 сокета ЦП?