Настройка виртуальной машины vmware cores per socket

Управление числом vCPU и ядер в виртуальной машине

При создании виртуальных машин на различных гипервизорах (VMWare, KVM, Hyper-V и т.д.) вы можете обратить внимание, что иногда виртуальная машина может не видеть все выделенные ей виртуальные ядра (vCPU). В нашем случае виртуальной машине на KVM были выделены 8 vCPU, на нее установлена Windows 10. Однако Windows определяла эти ядра как отдельные процессоры, из которых можно использовать только 2 vCPU.

Виртуальная машина Windows 10 не видит все ядра

Если открыть диспетчер устройств Windows, можно убедится, что все выделенные ядра видны в качестве 8 отдельных виртуальных процессоров типа QEMU Virtual CPU version 2,5.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

То есть сколько бы вы не добавили виртуальных ядер, Windows 10 все равно сможет использовать только два. При этом соседний виртуальный сервер с Window Server 2016 на этом же гипервизоре видит все 16 выделенных ему vCPU.

Количество поддерживаемых процессоров в Windows 10

Проблема заключается в том, что в десктопных редакциях Windows (Windows 10/8.1/7) есть ограничение на максимальное количество физических процессоров (сокетов), которое компьютер может использовать:

Однако это ограничение не распространяется на ядра. Т.е. для повышения производительности вы можете использовать процессор с большим количеством ядер. Большинство гипервизоров умеют предоставлять vCPU в виде процессоров, процессорных ядер или даже потоков. Т.е. вместо 8 виртуальных CPU вы можете предоставить vCPU в виде 2 сокетов по 4 ядра в каждом. Рассмотрим, как в различных системах виртуализации выделить виртуальные процессоры в виде ядер и как это связать с архитектурой NUMA, использующейся в современных процессорах.

Управление виртуальными ядрами и vCPU в KVM

В моей виртуальной машине KVM c Windows 10, все назначенные виртуальные ядра считаются отдельными процессорами.

Чтобы использовать все ресурсы CPU, выделенные виртуальной машине нужно, чтобы виртуальная машина видела не 8 процессоров, а один 8-ядерный процессор, 2 процессора по 4 ядра или 1 процессор с 4 ядрами по 2 потока. Попробуем изменить способ назначения виртуальных ядер для ВМ на KVM.

Выключите виртуальную машину:

# virsh shutdown server.vpn.ru – где server.vpn.ru это имя виртуальной машины.

Выведите текущую XML конфигурацию виртуальной машины KVM:

# virsh dumpxml server.vpn.ru

Нам интересен блок с описанием процессоров:

Как видим, у нас указано просто 8 vCPU. Изменим конфигурацию:

# virsh edit server.vpn.ru

Сохраните конфигурационный файл и запустите ВМ. Авторизуйтесь в гостевой ВМ с Windows 10 и в Task Manager или Resource Monitor проверьте, что ОС видит все выделенные виртуальные ядра.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Также в свойства системы теперь стал отображаться физический процессор хоста Intel(R) Xeon(R) Silver 4114 CPU, а не виртуальный.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Так нам удалось решить проблему с нагрузкой на ВМ, так как двух ядер не хватало для полноценной работы приложений.

Настройка виртуальных процессоров и количества ядер в VMWare

Вы можете изменить способ презентации vCPU для виртуальной машины VMWare из интерфейса vSphere Client.

Архитектура NUMA и виртуальные vCPU

Есть еще несколько аспектов назначения vCPU и ядер виртуальным машинам, которые нужно понимать.

При назначении ядер на сокете учитывайте наличие NUMA архитектуры (используется в большинстве современных CPU). Не рекомендуется назначать вашей ВМ количество ядер на сокет (и общее количество vCPU) больше, чем доступно ядер на вашем физическом сокете/процессоре (ноде NUMA). При размещении на одной физической ноде NUMA, виртуальная машина сможет использовать быструю локальную RAM, доступную на конкретной ноде NUMA. Иначе для выполнения операции процессам придется ждать ответа от другой ноды NUMA (что несколько более долго).

Если вы назначаете для ВМ два отдельных виртуальных сокета, то гипервизор может их запускать на разных нодах NUMA. Что не лучшим образом скажется на производительности ВМ.

Если количество требуемых vCPU превышает количество ядер на 1 физическом сокете (ноде NUMA), нужно создать несколько виртуальных сокетов (процессоров) с необходимым количество ядер. Также не желательно использовать нечетное количество процессоров (лучше добавить 1 vCPU)

Это позволит сохранить производительность виртуальной машины.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Например, для 2 процессорного хоста с 10 ядрами (суммарно доступно 40 vCPU с учетом HyperThreading), при настройке vCPU для ВМ оптимально использовать такие конфигурации:

Требуемое количество vCPUКоличество виртуальных сокетов в настройках ВМКоличество ядер на виртуальном процессоре в настройках ВМ
111
……
10110
11Не оптимально
1226
……
20210

Например, ВМ с Microsoft SQL Server 2016 Enterprise Edition 16 vCPU в конфигурации 8 сокетов по 2 ядра будет работать хуже, чем в конфигурации 2 сокета по 8 ядер.

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

Источник

Как настроить количество ядер на CPU в виртуальной машине

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socketНачиная с vSphere 4.1 VMware полностью поддерживает технологию многоядерных виртуальных процессоров (Multicore Virtual CPU).

Теперь можно не только задать, сколько vCPU можно презентовать виртуальной машине (до 8 vCPU в entreprise plus, и до 4 vCPU в других версиях), но и также задать сколько ядер vCPU будет иметь. Этим можно добиться максимальной отдачи от вашей виртуальной машины, например, презентовав ей 1 vCPU, но с 4 ядрами на нем, тем самым вам не придется платить больше за ПО, которое лицензируется по методике на сокет (per socket)

Например, если вы сделали миграцию сервера P2V из сервера, который изначально работал на железе с одним процессорным разъемом (socket), теперь вы можете предоставить этой ВМ больше ядер, причем вам не придется платить дополнительную сумму за лицензирование установленного приложения. Это означает, что вы можете использовать ВМ с одним vCPU, который использует всего одну сокетную лицензию, но настроенным в качестве четырехядерного процессора.

Один CPU (vCPU) в гостевой операционной системе виден как один одноядерный процессор. Так например, если вы создаете виртуальную машину с 8 vCPU (это максимальное их количество), гостевая операционная система увидит 8 одноядерных процессоров.

Технология VMware multicore virtual CPU позволяет управлять количеством ядер в виртуальных CPU. Эта возможность позволяет операционным системам с ограничением по сокетам использование больше ядер CPU, что повышает общую производительность.

Есть одно небольшое ограничение: поддержка многоядерных vCPU возможна только при использовании в виртуалках с Hardware version 7.
Чтобы назначить больше ядер виртуальной машине, выполните следующие шаги:

Данное значение должно быть степенью числа 2 (т.е. 2,4, или 8)

Источник

Моя первая виртуальная машина: как не накосячить

Итак, вот перед вами свеженькая организация в vCloud Director, и вам только предстоит создать свою первую виртуальную машину. Сегодня расскажу, какие настройки выбирать при создании виртуальной машины, чтобы она работала и не просила есть. Поехали!

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket
Источник: drive2.ru

Операционная система. Выбирайте современные дистрибутивы. Если берете Windows 2008 R2 и более старую или Linux до ядра 4.19.x, ждите проблем. Каких? Ну, например, вендор уже перестал поддерживать актуальное состояние Windows 2008 R2 аж в 2013 году (EOL). Это означает, что он больше не разрабатывает драйвера под вышедшее с тех пор железо, не модифицирует ОС под новое что угодно. С древними операционками вы точно не сможете использовать все возможности, которые предоставляет современный гипервизор. А уже в эти новогодние праздники остро встанет проблема с безопасностью, так как 14 января 2020 года заканчивается расширенная поддержка Windows Server 2008 R2 и перестанут выходить Security Update.

Cores per socket. Оставляйте 1 ядро на сокет, ставьте столько сокетов, сколько вам нужно виртуальных процессоров. Да, логично наоборот, но правильно так. Если у вас нет специализированных лицензионных требований. Например, вы платите за сокет, а больше сокетов означает больше лицензий. Не ставьте 2/2, чтобы получить 4. Сделайте 4/1. Такую машину гипервизор будет обслуживать оптимальным образом. Scheduler гипервизора будет меньше пенализировать такие ВМ.
Объясню на пальцах. Представьте, что проводник рассаживает пассажиров по вагону, вагон – как в Сапсане. В роли проводника scheduler, пассажиры – это ВМ. Пассажиров, которые едут в одиночку (однопроцессорные ВМ), ему распределить проще всего: их можно посадить на любое место. Семью из 4 человек (4-процессорные ВМ) уже сложнее. Им нужно найти 4 места в одном вагоне. А теперь представим, что все в семье хотят ехать только лицом друг другу, а таких групп мест – 4 вокруг стола – в вагоне только 2. С большой вероятностью такой семье придется пройти в следующий вагон (на следующий тик планирования). Это как раз та ситуация, как если бы вы выбрали 2 сокета по 2 ядра, чтобы получить 4. Скорее всего, придется подождать, чтобы нашлись подходящие места. Так же и с ВМ: ей придется ждать дольше, чем менее “прихотливым” ВМ с 1 сокетом и кучкой процессоров.

Хотя эта история актуальнее для старых версий ESXi. Начиная с 6.5 (но не ранее!) механизм vNUMA отвязан от количества виртуальных сокетов, и старая рекомендация “не плодить сокеты” не так категорична. Но все еще зависит от приложения внутри гостевой ОС.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Hot Add для CPU и Memory. Это опция добавления памяти CPU для работающей виртуальной машины. Казалось бы, прекрасная функция: не нужно гасить машину, чтобы докинуть ей ресурсов. Так вот, не все так просто, и не зря они по дефолту отключены. Лучше и не включать, если вы не знаете, что такое NUMA-топология. Допустим, под капотом облака у нас двухсокетный сервер. На каждом сокете 4 ядра. Работает это именно как 4+4, а не 8 ядер. Такая же тема с памятью: если на каждом сокете 128 ГБ, это не дает в сумме 256 ГБ. Каждый процессорный сокет имеет прямой доступ только к определенным слотам памяти. Каждый сокет вместе с причитающейся ему процессором и памятью – это физическая NUMA-нода.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Если виртуальная машина влезает в размер физической NUMA-ноды, то она исполняется внутри этой ноды. Если виртуалка не умещается в NUMA-ноду, например по памяти, то она будет использовать память из соседней NUMA-ноды. Путь к удаленной памяти будет извилист – через межпроцессорную шину. Работать это будет не так быстро, как если бы виртуалка использовала ресурсы одной ноды.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Когда вы включаете добавления виртуальных процессоров и памяти на горячую, все это идет только в нулевую NUMA-ноду. Например, добавилось еще 4 процессора, и на NUMA-ноде 0 стало 6, а на NUMA-ноде 1 – 2 процессора. Машину немного перекосило, и работает она также косо. Это связано с тем, что при включении vCPU Hot-Plug перестает работать vNUMA, через которую vSphere старается оптимизировать топологию NUMA для ВМ. Поэтому, принимая решение о включении CPU Hot-Add, учитывайте физическую топологию NUMA для обеспечения производительности ВМ. Это очень критично, если по каким-либо причинам в ВМ имеется несколько виртуальных сокетов. В этом случае несоответствие физической топологии вызовет сильное падение производительности: CPU Scheduler сойдет с ума, пытаясь предоставить процессорное время такой ВМ, что вызовет рост CPU Ready и Co-Stop.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket
Все добавленные виртуальные процессоры (5-8) и память попали на NUMA-ноду 0.

Отдельная история в том, что будет происходить внутри ОС и приложения после таких “добавок”. Поэтому если уж решили пользоваться этой опцией, то проверьте, поддерживает ли ваша ОС такое. Non-NUMA-Aware приложения могут сильно просесть по производительности при расположении на нескольких NUMA-нодах.

Если вы все-таки добавили процессоры или память на горячую, сразу планируйте перезагрузку ВМ (не только ОС) на ближайший запланированный даунтайм.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket
Галочки не ставим.

Дисковый контроллер (Bus type). Для дисков выбирайте дисковый контроллер Paravirtual. Этот тип контроллера требует установки драйверов в ОС VMware Tools. Paravirtual – это специальное виртуальное устройство, которое создавалось для работы в виртуализации и не эмулирует работу какого-то другого аппаратного устройства. Любая эмуляция аппаратного устройства всегда работает медленнее.

Если вы не хотите использовать Paravirtual (но почему?), выбирайте LSI Logic SAS. Если ОС не поддерживает и его — LSI Logic Parallel. Никогда не используйте SATA и IDE. ВМ будет медленно работать, в итоге вы не получите производительности, за которой идут в облако.

При инсталляции ОС даже свежая версия Windows может не найти драйвер для Paravirtual адаптера. В этом случае примонтируйте к ВМ два ISO файла — ваш загрузочный образ Windows и диск с VMware tools. На последнем есть необходимый драйвер.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Сетевой адаптер. Правильный выбор – VMXNet3. VMXNet3, как и дисковый адаптер Paravirtual, это паравиртуальное устройство. Оно также требует драйверов, которые входят в VMware Tools.

Если вдруг VMXNet3 не подходит (проявляется какая-то несовместимость), то на крайний случай используйте E1000E. Но не ожидайте от адаптера E1000E производительности больше, чем 1 Гбит.

В общем, E1000E без прямых указаний вендоров не используйте. Казалось бы, оно новее, но сделано для обеспечения еще большей совместимости c legacy.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket
Вот не надо E1000E.

VMware Tools. Следите, чтобы они были установлены в ОС, запущены и актуальны. В VMware Tools входят драйвера устройств и разные другие компоненты, которые позволяют общаться ОС виртуальной машины с гипервизором, и наоборот. Через них происходит синхронизация времени ОС с хостом виртуализации (отключаемо), ходят heartbeat’ы, которые показывают гипервизору, что виртуалка жива, и прочее. Для работы ОС на виртуальной машине нужны как минимум драйверы сетевой карточки, дискового адаптера. Свежие версии всего вот этого входят в VMware Tools.

По умолчанию актуальные версии Windows и Linux имеют драйвера для работы с виртуальными устройствами VMware, но если у вас будут VMware Tools, то эти драйвера будут всегда свежими. Для Linux рекомендуется использовать open-vm-tools. Это не просто лучшая интеграция с ОС, но и обновление драйверов вместе с системой.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

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

Кроме того, новый виртуальный диск также получит дополнительную квоту на дисковую производительность.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Кастомизация. При первом включении ВМ нужно кастомизировать, чтобы все настройки из облака (например выданный облаком IP-адрес) применились к ОС. После уберите эту галку от греха подальше, чтобы нечаянно не сбросить настройки ОС: SID, пароль администратора и т. п.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Конечно, все вышесказанное – упрощенная картина, слова “капитана О” и, вообще, “все же это знают”. Но, как показывает практика, более 70% ВМ в облаке содержат одну или сразу несколько описанных ошибок.

Источник

Настройка виртуальной машины vmware cores per socket

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Коллеги добрый день!

Помогите разобораться с настройкой процессора для виртуальных машин.

Есть в наличии сервер с 2 физицескими процессорами по 8 ядер. Всего 16 с Hyper-threading получаем 32.

При создании виртуальной машины К примеру Файловый сервер какие параметры я должен указывать. Количество CPU и количество Cores per Socket. Прочитал статьи, документы но так и не понял. Такая же ситуация с SQL сервером, оптимальная конфигурация, если приобретен SQL сервер с лицензией по ядрам SQLSvrStdCore 2017 RUS OLP 2Lic A Gov CoreLic в колличестве 4 шт

1. Если конфигурация 2 цпу с 8 ядрами в каждом, то не надо пытаться делать ВМ с более чем 16 vCPU (в любом сочетании виртуальных сокетов и виртуальны ядер)

2. У вас может быть переподписка в соотношение виртуальных процессоров\ядер к физическим. Иными словами если у вас физических ядер на сервер 16 штук, то никто вам не мешает иметь несколько виртуальных машин, суммарно у которых виртуальных ядер будет больше. Например всего 80. Коэффициент консолидации в таком случае будет 5 к 1.

Для разных нагрузок этот коэффициент может варьироваться.

3. Следуя из пункта 2, ваша логика конфигурации виртуальных машин неверна. Можно сделать несколько ВМ с 4 vCPU, если это нужно.

4. По поводу лицензий на MS SQL вроде бы так получается, но тут я не самый большой специалист.

Гипертрейдинг обычно не учитывается при сайзинге виртуальной инфраструктуры, скорее у вас играет роль коэффициент консолидации виртуальных процессоров на физическое ядро ЦПУ.

Настройка виртуальной машины vmware cores per socket. Смотреть фото Настройка виртуальной машины vmware cores per socket. Смотреть картинку Настройка виртуальной машины vmware cores per socket. Картинка про Настройка виртуальной машины vmware cores per socket. Фото Настройка виртуальной машины vmware cores per socket

Спасибо за статью! Из данной статьи я понял что не следует менять количество Cores Per Sockets если не превышено число физических ядер на процессоре.

Получается если у меня 2 процессора по 8 ядер.

На сервере esxi 6.7

Так как физические ядра закончились на процессоре, теперь использую 2 Сокета

Источник

You can add, change, or configure CPU resources to improve virtual machine performance. You can set most of the CPU parameters when you create virtual machines or after the guest operating system is installed. Some actions require that you power off the virtual machine before you change the settings.

VMware uses the following terminology. Understanding these terms can help you plan your strategy for CPU resource allocation.

CPU The CPU, or processor, is the component of a computer system that performs the tasks required for computer applications to run. The CPU is the primary element that performs the computer functions. CPUs contain cores. CPU Socket A CPU socket is a physical connector on a computer motherboard that connects to a single physical CPU. Some motherboards have multiple sockets and can connect multiple multicore processors (CPUs). Core A core contains a unit containing an L1 cache and functional units needed to run applications. Cores can independently run applications or threads. One or more cores can exist on a single CPU. Resource sharing Shares specify the relative priority or importance of a virtual machine or resource pool. If a virtual machine has twice as many shares of a resource as another virtual machine, it is entitled to consume twice as much of that resource when the two virtual machines are competing for resources. Resource allocation You can change CPU resource allocation settings, such as shares, reservation, and limit, when available resource capacity does not meet demands. For example, if at year end, the workload on accounting increases, you can increase the accounting resource pool reserve. vSphere Virtual Symmetric Multiprocessing (Virtual SMP) Virtual SMP or vSphere Virtual Symmetric Multiprocessing is a feature that enables a single virtual machine to have multiple processors.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *