vSphere - выделите 100% ЦП на 1 ВМ / 88% эффективности
РЕДАКТИРОВАТЬ 2: Мое приложение извлекает выгоду из Hyper-Threading
А. Да, я знаю, что такое технология и что она делает
Б. Да, я знаю разницу между физическим ядром и логическим
C. Да, отключение HT замедляет рендеринг, это ожидаемо!
D. Нет. Я не преувеличиваю, когда назначаю все логические (да, логические) ядра одной виртуальной машине. Если вы будете читать технические документы из VMWare, вы будете знать, что планировщик генерирует карту топологии физического оборудования и использует эту карту при выделении ресурсов. ресурсы, присваивая ВСЕ логические ядра одной ВМ, генерируют 16 логических процессоров в Windows, так же, как если бы я установил ВМ на физическом оборудовании. И вот, после 5 тестов, эта схема показала самое быстрое (и наиболее эффективное) время рендеринга.
F. Рассматриваемое приложение - 3ds Max 2014 с использованием backburner и рендерера Mental Ray.
TL | DR: я (иногда) хочу запустить одну виртуальную машину на vSphere с максимально возможной эффективностью использования процессора, как?
Я надеюсь использовать гипервизор ESWI / vSphere от VMWare немного нестандартным способом.
Обычно люди используют гипервизор для одновременного запуска нескольких виртуальных машин в одной системе. Я хочу использовать гипервизор, чтобы позволить мне быстро переключаться между приложениями, но по-настоящему запускать только одну ВМ / приложение за раз.
Это на самом деле проект для домашних животных, у меня есть 5-узловый рендер-фермер (например, узел 2x Intel Xeon E5540), который по большей части отключен (когда я не рендеринг, мне не нужно запускать эти машины). Это кажется пустой тратой времени на вычисления, поэтому я надеялся использовать их для других целей, когда не выполняю рендеринг (тип вычислительного кластера 40 ядра / 80 потоков общего назначения).
Я надеялся, что vSphere позволит мне раскрутить виртуальные узлы рендеринга при рендеринге и другие вещи, когда нет. Проблема в том, что мне действительно нужна высокая эффективность, когда речь заходит о процессоре, когда работает виртуальная машина рендеринга.
Я использую задание рендеринга в качестве эталона и получаю около 88% скорости на виртуальной машине, так как я могу работать на установке без виртуальной машины. Я надеялся на приближение к 95%, есть идеи, как мне туда добраться?
Редактировать детали:
Ресурсы, используемые виртуальной машиной рендеринга, я не до конца понимаю, почему эта панель не заполнена:
Настройки ресурса для этой виртуальной машины:
Хотя виртуальная машина не показывает, что она использует 100% ресурсов, хост делает:
Я не совсем понимаю процентные доли здесь, это когда все эти виртуальные машины включены? Также я не настроил другие виртуальные машины для резервирования 10%:
Наконец, хост показывает, что он полностью используется, хотя здесь не показано, использование МГц ниже (IE не 100%):
VM Config:
Я понимаю, что это интересный случай, но, тем не менее, я чувствую, что вопрос является действительным и хорошим и может помочь другим в аналогичной ситуации в будущем (хотя я признаю, что этот случай довольно специфичен).
2 ответа
Я думаю, что вы достигли максимума того, что вы, вероятно, получите с этими старыми Xeons, хотя, в отличие от ewwhite, я не верю, что гиперпоточность вызывает у вас какие-либо проблемы. Действительно, по крайней мере, начиная с ESXi 5.0, VMware рекомендовала использовать гиперпоточность для большинства рабочих нагрузок, и ваше собственное тестирование подтверждает, что вы получаете выгоду от HT. Как правильно замечает ewwhite, использование HT сделает некоторые метрики в vSphere странными.
Я думаю, у вас есть одна очевидная проблема и, возможно, одна неочевидная проблема:
Во-первых, это очевидная проблема, заключающаяся в том, что сама виртуализация несет накладные расходы, которые вы никогда не сможете полностью устранить. В случае с ЦП определенные инструкции должны быть виртуализированы, чтобы гипервизор правильно изолировал одну виртуальную машину от другой. Таким образом, вместо непосредственного выполнения инструкции, как в голом железе, гипервизор будет перехватывать вызов и выполнять несколько инструкций вместо него. Из предыдущего опыта мы видим, что 87-90% - это то, что вы должны ожидать от процессора. Преодоление этого потребовало бы значительного прогресса в оборудовании. Если вы сейчас видите 91% производительности собственного процессора, это, вероятно, примерно столько же, сколько и будет.
Второе - это неочевидная проблема NUMA. Это проблема многопроцессорных систем, где часть памяти быстрее, когда к ней обращается ближайший процессор, и медленнее, когда к ней обращаются другие процессоры. В зависимости от того, как ваше задание рендеринга обрабатывает память, вы можете получить некоторое преимущество, запустив два параллельных рендера в двух виртуальных машинах, каждая из которых прикреплена к определенному ЦП и всегда получает доступ к немного более быстрой памяти. (Если вы запускаете две виртуальные машины на одном хосте, каждая из которых использует половину доступных виртуальных ЦП, ESXi должен автоматически решить эту проблему за вас.) Хотя, если вы не видите эту проблему на голом железе, вы, вероятно, получите небольшую выгоду, попробовав это.,
Вы неправильно настроили свою виртуальную машину (ы) и хост.
Что нужно учитывать:
- Если у вас сложный вычислительный процесс, вы можете отключить HyperThreading.
- HyperThreaded (логические) ядра не совпадают с физическими ядрами!
- Процессоры Intel E5540 относятся к 2009 году. Это четырехъядерные процессоры. У вас будет 8 физических и 8 логических ядер (всего 16).
- Если вы настроили одну виртуальную машину с 16 виртуальными ЦП, уменьшите ее!
- ESXi также требует некоторых ресурсов.
- Попробуйте изменить размер вашей виртуальной машины (8 vCPU), если вы не хотите отключать HyperThreading.
Другие дела (в общем)...
- Обновите ESXi до текущей версии и патча.
- Обновите виртуальное оборудование ваших виртуальных машин (например, vmx-09 или vmx-10).