Как сделать два виртуальных ядра

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

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

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

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

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

То есть сколько бы вы не добавили виртуальных ядер, 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 проверьте, что ОС видит все выделенные виртуальные ядра.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

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

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

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

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

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

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

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

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

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

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

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

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Например, для 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 отличаются между собой даже в рамках одного семейства. Например, Intel Core i7 отличается от i5 технологией многопоточности под названием «Hyper-Threading», о которой далее пойдет речь (Core i3, i9, и некоторые Pentium также обладают данной технологией).

Принцип работы процессорных ядер и многопоточности

В современных операционных системах одновременно работает множество процессов.
Нагрузка от операционной системы на процессор идет по так называемому конвейеру, на который «выкладываются» нужные задачи для ядра. В качестве примера возьмем одно ядро процессора на частоте 4 ГГц с одним ALU (арифметико-логическое устройство) и одним FPU (математический сопроцеесор). Частота в 4 ГГц означает, что ядро исполняет 4 миллиарда тактов в секунду. К ядру по конвейеру поступают задачи, требующие исполнительной мощности, на которые тратится процессорное время.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Часто происходят случаи, когда для выполнения необходимой операции процессору приходится ждать данные из кеша более низкой скорости (L3 кеш), или же оперативной памяти. Данная ситуация называется кэш-промах. Это происходит, когда в кэше ядра не была найдена запрошенная информация и приходится обращаться к более медленной памяти. Также существуют и другие причины, заставляющие прерывать выполнение операции ядром, что негативно сказывается на производительности.

Данный конвейер можно представить, как настоящую сборочную линию на заводе — рабочий (ядро) выполняет работу, поступающую к нему на ленту. И если необходимо взять нужный инструмент, работник отходит, оставляя конвейер простаивать без работы. То есть, исполняемая задача прерывается. Инструментом, за которым пошел рабочий, в данном случае является информация из оперативной памяти или же L3 кэша. Поскольку L1 и L2 кэш намного быстрее, чем любая другая память в компьютере, работа с вычислениями теряет в скорости.

На конвейере с одним потоком не могут выполняться одновременно несколько процессов. Ядро постоянно прерывает выполнение одной операции для другой, более приоритетной. Если появятся две одинаково приоритетные задачи, одна из них обязательно будет остановлена, ведь ядро не сможет работать над ними одновременно. И чем больше поступает задач одновременно, тем больше прерываний происходит.

Способы увеличения производительности процессоров

Разгон

При увеличении частоты ядра повышается количество исполняемых операций за секунду. Казалось бы, с возрастанием производительности процессора проблемы должны исчезнуть. Но все не так просто, как хотелось бы думать. Прирост от увеличения частоты ЦП нелинейный. Множество процессов все еще делят одно ядро между собой и обращаются к памяти. Кроме того, не решается проблема с кэш-промахами и прерываниями операций, поскольку объем кэша от разгона не изменяется. Разгон — не самый лучший способ решения проблемы нехватки потоков. В пример можно привести всю ту же сборочную линию: рабочий увеличивает темп работы, но по-прежнему не умеет собирать два и более заказа одновременно.

Увеличение количества потоков на ядро

В процессорах Intel данная технология носит название Hyper-Threading, а в процессорах от Amd — SMT. Производители добавляют еще один регистр для работы со вторым конвейером. Пока один поток простаивает, ожидая нужные данные, свободная вычислительная мощность может быть использована вторым потоком. На кристалл же добавлен еще один контроллер прерываний и набор регистров.

Появляется возможность избавиться от последствий прерывания операций и сокращения времени простоя процессорной мощности. Благодаря чему ядро с двумя потоками выполняет больше работы за одинаковый отрезок времени, нежели в случае с однопотоком. На примере с рабочим: у конвейера появляется вторая сборочная линия, на которую выкладываются заказы. Пока производство на первой ленте простаивает в ожидании нужных инструментов, рабочий приступает к работе на второй ленте, сокращая время перерыва.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Стоит учитывать, что логический поток это не второе ядро, как может показаться с первого взгляда. Это лишь дополнительная «линия производства», чтобы более эффективно использовать доступную мощность. Из минусов технологии Hyper-Threading или SMT можно выделить увеличение тепловыделения, недостаток кэша (кэш на два потока по-прежнему общий), и проблемы с оптимизацией некоторых программ или игр, не способных отличать настоящее ядро от логического потока.

Именно по этой причине процессоры серии i7 «горячее» и имеют больше кэша по сравнению с i5. Использование технологии многопоточности может принести примерно до 30 % прироста производительности. Все это применимо как к Intel Hyper-Threading, так и к AMD SMT, поскольку технологии во многом схожи. Может возникнуть вопрос: «Если можно добавить второй поток, то почему бы не добавить третий и четвертый?» Это реализуемо, но не имеет смысла, поскольку кэш одного ядра достаточно мал для большего количества потоков и прироста производительности практически не будет.

Увеличение количества ядер

Это самый действенный способ решения проблемы, поскольку каждый конвейер теперь располагает своим FPU, ALU и кэшем, который не придется делить с другим потоком. Разные процессы используют разные ядра, из-за чего реже происходят кэш-промахи и конфликты приоритетных задач. Способ, разумеется, несет в себе некоторые издержки для производителей: дороговизна разработки и производства, увеличение тепловыделения и размера кристалла, и, как результат, повышается итоговая стоимость процессора.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Сферы применения многопоточных процессоров

С развитием компьютерных технологий перечень программ, использующих многопоточность, неуклонно растет. Это дает огромный простор разработчикам для создания нового софта и игр. Например, сейчас каждый современный triple-A проект оптимизирован для многопоточных процессоров, что позволяет наслаждаться игрой, получая высокий уровень fps на многоядерном CPU.

Еще больше распространены многоядерные системы в среде разработчиков. Программы для 3D-моделирования, монтажа видео и создания музыки требуют параллельного выполнения большого количества задач, с чем хорошо справляются системы с Hyper-Threading или SMT. В операционных системах мощность одного потока может тратиться на фоновые задачи (Skype, браузер, мессенджер), в то время как остальные задействуются для тяжелой игры или программы.

Но далеко не всегда увеличение количества потоков означает увеличение общей производительности. Почему же SMT процессоры порой уступают немногопоточным собратьям? Дело в программной поддержке. Иногда плохо оптимизированные программы не могут отличать логический поток от настоящего ядра, из-за чего на одно ядро может попасть две тяжелых задачи и замедлить работу. Тем не менее, подобные технологии имеют огромный потенциал, главное — грамотно реализовать его на программном уровне.

Источник

Как включить все ядра процессора

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Привет всем! Иногда игра или программа не работает на полную мощность, т.к. за производительность отвечают не все ядра. В этой статье посмотрим как задействовать все ядра вашего процессора.

Но не ждите волшебной палочки, т.к. если игра или программа не поддерживает многоядерность, то ничего не поделать, если только не переписать заново приложение.

Как запустить все ядра процессора?

Итак, способов будет несколько. По этому показываю первый.

Заходим в пуск — выполнить или клавиши win+r

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Далее в открывшемся окне переходим в загрузки — дополнительные параметры.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Выбираем ваше максимальное число процессоров.

Так кстати можно узнать количество ядер процессора. Но это виртуальные ядра, а не физически. Физических может быть меньше.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Нажимаем ОК, перезагружаемся.

Далее способ 2.

Переходим во вкладку процессы. Находим игру и нажимаем правой кнопкой мыши по процессу. Да кстати, игра должна быть запущена. Свернуть её можно или Win+D или alt+tab.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Выбираем задать соответствие.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Выбираем все и нажимаем ок.

Чтобы посмотреть, работают все ядра или нет, то в диспетчере задач заходим во вкладку быстродействие.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Во всех вкладках будет идти диаграмма.

Если нет, то нажимаем опять задать соответствие, оставляем только ЦП 0, нажимаем ок. Закрываем диспетчер задач, открываем опять повторяем все, то же самое, выбираем все процессоры и нажимаем ок.

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

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Для полного использования, должно стоять 100%.

Как проверить сколько работает ядер?

Запускаем и видим число активных ядер.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Не путайте этот параметр с количеством виртуальных процессоров, который отображены правее.

На что влияет количество ядер процессора?

Многие путают понятие количества ядер и частоту процессора. Если это сравнивать с человеком, то мозг это процессор, нейроны — это ядра. Ядра работают не во всех играх и приложениях. Если в игре например выполняется 2 процесса, один вырисовывает лес, а другой город и в игре заложено многоядерность, то понадобиться всего 2 ядра, чтобы загрузить эту картинку. А если в игре заложено больше процессов, то задействуют все ядра.

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

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

Источник

Процессоры и виртуальные ядра

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Вобщем долго искал но не нашел номральной статьи по этой теме.
Допустим есть 2 процессора.
Первый процессор. В нем 4 реальных ядра. Частота 3 Ггц
Второц процессор. В нем 2 ядра поделеныых по 2 виртуальных (вроде называется Hyper Threating). (в диспетчере задач все равно отображается якобы 4 ядра) Частота 3 Ггц

Что лучше, насколько лучше и почему.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Если у тебя стоит выбор меджу i5 и i3, то лучше выбирать первый.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Нет. Мне нужно вобще узнать что это такое и как оно работает. Типа если всего 2 ядра и каждое ядро поделено на 2 вирутальных то получается там 4 ядра по 1.5 Ггц (не физически а в итоге работы на компьютере)?

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

3 минуты видео ответят на все твои вопросы

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Пппииидд. ответ :d2troll:

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Ответ в видео выше.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Практически тот же ответ что и мой.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

3 минуты видео ответят на все твои вопросы

Ясно. В итоге можно считать 4 ядра по 1.5 Ггц (ну почти). Вобщем 4 ядра значительно (почти в 2 раза) лучшем чем 2 физических поделенных на 2 виртуальных.

Как сделать два виртуальных ядра. Смотреть фото Как сделать два виртуальных ядра. Смотреть картинку Как сделать два виртуальных ядра. Картинка про Как сделать два виртуальных ядра. Фото Как сделать два виртуальных ядра

Вобщем долго искал но не нашел номральной статьи по этой теме.
Допустим есть 2 процессора.
Первый процессор. В нем 4 реальных ядра. Частота 3 Ггц
Второц процессор. В нем 2 ядра поделеныых по 2 виртуальных (вроде называется Hyper Threating). (в диспетчере задач все равно отображается якобы 4 ядра) Частота 3 Ггц

Что лучше, насколько лучше и почему.

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

Источник

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

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