Лучшая практика: vCPU на физическое ядро

Я пытаюсь найти какую-либо документацию или руководство по лучшей практике для виртуализации в отношении выделения vCPU на физическое ядро ​​(CPU). Если это имеет значение, я рассматриваю vmWare для реализации виртуализации. Например, процессор Intel Xeon может иметь 4, 8 и т. Д. Мне интересно узнать больше о предоставлении ресурсов за пределами одного vCPU на одно физическое ядро. Поставщик, с которым я говорю, определенно думает, что одно ядро ​​может быть предоставлено в несколько vCPU.

То, что я обычно вижу в своих исследованиях до сих пор, «Ну, это зависит от вашего приложения». И в этом случае мое приложение редактирует код, компилирует /связывание, тестирование и управление конфигурацией. Конечно, не все виртуальные машины должны быть настроены с несколькими vCPU на ядро, но в общем случае.

22 голоса | спросил Dr. Watson 3 Mayam13 2013, 01:59:56

4 ответа


20

Один физический ЦП может использоваться как много vCPU. В решениях виртуализации редко хватает ресурсов процессора. RAM и память всегда являются ограничивающими факторами ...

Помните, что в VMware загрузка процессора представлена ​​в используемой частоте, а не в ядрах ... Если вы не привязываете все ваши виртуальные процессоры на 100% ВСЕ ВРЕМЯ , я не подумайте, что ваш поставщик прав.

Давайте посмотрим на следующий кластер систем ...

  • 9 хостов ESXi.
  • 160 виртуальных машин
  • 104 физических ядра процессора в кластере.
  • Средний профиль виртуальной машины: 4 vCPU и 4GB до 18GB RAM.
  • ЦП может быть надежно переписан ... но помните, что он также может быть ограниченный, зарезервированный и приоритетный на уровне VM.

 введите описание изображения здесь>> </a>
<a href=«введите

из другого активного кластера - 3 хоста 42 виртуальных машины введите описание изображения здесь>> </p></body></html>

ответил ewwhite 3 Mayam13 2013, 02:13:16
7

Чтобы расширять запись ewwhite, если у вас нет приложений, которые могут явно использовать преимущества нескольких vCPU или нескольких ядер на каждый vCPU, абсолютно нулевое преимущество при распределении нескольких VCPU /ядер для виртуальной машины. Фактически, чаще всего вы на самом деле оказываетесь ниже производительности, а не на одном VCPU, который имеет одно ядро, назначенное ему, частично из-за накладных расходов на планирование, необходимых для запуска нескольких vCPU.

FWIW, в настройке VDI часто цитируемый номер составляет 5 vCPU на физическое ядро. Конечно, это вовлекает настольные рабочие столы. Если ваши виртуальные машины действительно заняты компиляцией кода, все время вы не сможете разместить 5 vCPU на физическое ядро.

Причина, почему так много людей говорят, что «это зависит», потому что это действительно так. Посмотрите на свои значения готовности к процессору, а затем решите, можете ли вы увеличить нагрузку на процессор на определенную систему. CPU Ready - это измерение того, что vCPU готов к выполнению команды, но он должен ждать, пока физическое время CPU станет доступным.

В вашем случае, если вы компилируете большие программы, вполне возможно, что вашим виртуальным машинам на самом деле потребуется много процессорного времени. Как отмечал eWhite, обычно виртуализация имеет тенденцию быть дисковым вводом-выводом и ограничена памятью, а не ограничена ЦП.

ответил Reality Extractor 3 Mayam13 2013, 07:53:57
3

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

Итак, если одновременная нагрузка на все используемые vCPU не превышает нагрузку, которую могут обрабатывать ваши физические ядра, все хорошо.

Для ваших требований только компиляция - это целенаправленная работа с ЦП, которая требуется только время от времени. Для компиляторов-виртуальных машин мы выделяем столько CPU, сколько доступно. Поэтому, если есть необходимость в компиляции, это будет сделано как можно быстрее (если ваш компилятор поддерживает компиляцию паралелей).

Это может быть неверно для компилятора-VM, который находится под постоянной нагрузкой (например, если вы предоставляете интернет-сервис для компиляции и который постоянно используется).

ответил Nils 3 Maypm13 2013, 12:12:43
1

Одно эмпирическое правило, которое я видел (возможно, в документации VMware), заключается не в том, чтобы выделять больше ядер для виртуальной машины, чем физически на хосте, поскольку это может привести к эмулированию нескольких vCores на одном ядре, что добавит ненужные служебные данные .

ответил Paul Gear 8 Mayam13 2013, 02:18:28

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132