Как правильно настроить виртуальные машины ESX для использования гиперпоточности полезным способом?

У меня есть своего рода конкретный вопрос, на который я не смог найти ответ в официальной документации VMware или в некоторых других очень полезных темах здесь, на этой платформе, поэтому вот он:

У меня есть хост, использующий ESX 6.0 с 2 сокетами, у каждого по 6 ядер с HT. В общем, у меня 12 ядер и 24 потоков на этом оборудовании.

Это работает 10 ВМ. Я выделил 34 ядра (я знаю, что это плохо, но не могу сейчас это изменить). Однако у меня серьезные проблемы с одной из виртуальных машин, которой назначено 8 ядер (2 x 4).

Я знаю, как работает гиперпоточность и что при идеальной рабочей нагрузке HT-Core будет иметь около 50% производительности "реального" ядра.

Итак, вот мой вопрос: выиграю ли я от использования привязки к процессору, чтобы убедиться, что этот сервер имеет 8 "реальных" (= более быстрых) ядер вместо того, чтобы позволить VMware обрабатывать ядра?

1 ответ

Решение

Ваша проблема не в HT. Повышение HT на 50% - это число, основанное на ничто. Обычно это может быть увеличение на 5-20% для некоторых многопоточных приложений в зависимости от кода и рабочей нагрузки. Дело в том, что вы не должны рассчитывать на это при распределении ядер.

В случае VMWare, процессоры считаются реальными ядрами, а логические процессоры - частью HT.

Пример:

Процессор Intel(R) Xeon(R) E5-2620 v4 имеет 8 ядер и 16 потоков. Сервер Dell, использующий конфигурацию с двумя сокетами, будет иметь 2 из этих процессоров, то есть 16 ядер и 32 логических процессора (или потоков). Итак, хост ESXi покажет: 16 процессоров x процессор Intel(R) Xeon(R) E5-2620 v4 @ 2,10 ГГц

Это именно то, что происходит в вашем случае: у вас 2 процессора по 6 ядер в каждом, что означает, что ESXi будет использовать 12 ядер (и 24 логических процессора).

Проблемы в вашем случае: 34 ядра - это значительно больше, чем 12, а то и больше 24. Это нормально, если у вас несколько гостей, которые используют свои выделенные ЦП по максимуму.

Назначение 2-х ядер и 4-х розеток не годится, так как у вас 2-х сокетов. ESXi может обрабатывать переводы, но лучше назначить 4 ядра процессора и 2 сокета. Если вам действительно нужна вычислительная мощность на этом 8-ядерном гостевом компьютере, вам следует использовать опцию резервирования при распределении процессоров. Это гарантирует, что другие гости не украдут мощность процессора у вашего гостя, интенсивно использующего процессор.

Другие вопросы по тегам