Обмеження процесора Hyper-V


14

Нещодавно ми придбали сервер, на якому працює голий метал Hyper-V 2008 R2. Сервер має два чотирьохядерні процесори Intel Xeon з гіперточенням, тому, якщо я правильно розумію, це дає нам 16 ядер. У межах Hyper-V ми створили віртуальну машину під управлінням Windows Server 2008 R2 з чотирма віртуальними процесорами. Екран налаштувань процесора говорить мені, що це становить 25% від загальної потужності системи. Чи означає це, що віртуальну ОС не можна використати решту 75%? Ми будемо запускати кілька інших віртуальних машин, але ця призначена для SQL Server, і ми хотіли б кинути на неї якомога більше кінських сил.


5
Ви хочете бути дуже обережними щодо розподілу vCPU на машину. Це означає, що віртуальна машина повинна зачекати, поки одночасно будуть доступні 4 фізичні процесори, перш ніж вона зможе виконати. Дивіться тут
Голокриптик

6
Що стосується Hyperthreading, подивіться на цей чудовий буквар: arstechnica.com/old/content/2002/10/hyperthreading.ars
Hyppy

4
Голокриптичний, ваше твердження стосувалося старих систем VMWare, але воно ніколи не було правдою для Hyper-V. Hyper-V не "розкладає банди" віртуальних процесорів.
Джейк Ошинс

Відповіді:


15

VCPU можна відобразити лише в одному фізичному процесорі. Ви не можете взяти 4 фізичних процесора та зробити один vCPU, що в 4 рази швидше; це просто не так, як це працює.

Hyper-V обмежується призначенням 4 vCPU VM (востаннє я перевірив). Якщо вам потрібна значна потужність процесора, будьте фізичні, немає сенсу додавати віртуалізацію накладні витрати на те, що процесор інтенсивно і паралельно в першу чергу.

Крім того, як зазначає Holocryptic, якщо ви призначите 4 vCPU VM, це VM не може працювати, поки Hyper-V не придбає 4 фізичних ядра CPU для їх запуску. В залежності від конфігурації це може бути основним каменем спотикання (наприклад, якщо у вас є 6-жильний машину в з купою 4 VCPU віртуальних машин, тільки один буде коли - або працювати в той час, інші два ядра завжди буде йти в основному НЕ використовується). За словами Джейка Ошина, це не було правдою для жодної версії Hyper-V. Він заявляє, що Hyper-V не використовує планування банди для процесора; як це робить майже кожен інший гіпервізор. Відповідно, якщо є одне фістичне ядро ​​процесора, Hyper-V може використовувати його для запуску багатопроцесорної VM. (Також згадано, Hyper-V не може використовувати всі наявні на той час фізичні ядра через NUMA-розділення)

Бічна примітка: SQL не обов’язково використовує в першу чергу всі ядра, які ви можете кинути на нього. Це дійсно залежить від того, для чого ви його використовуєте, і наскільки паралелізується навантаження.


Я згоден, але накладні витрати на віртуальні процесори майже нічого, і рідко вступає в гру.
Нейт

4
Кріс, примітка Холокриптика просто неправильна. Hyper-V не чекає, поки не будуть вільні 4 віртуальні процесори, перш ніж планувати віртуальний процесор з 4-ти ВП VM. Hyper-V планує віртуальний процесор кожного разу, коли у нього є фізичний процесор, вільний для його запуску, з кількома застереженнями. Наприклад, він шукає фізичні процесори в тому ж фізичному вузлі NUMA, що і решта VM.
Джейк Ошинс

3

Так, те, що сказав Кріс. Якщо вам потрібно більше 4-х процесорів у віртуальній машині Hyper-V, тоді або створіть два віртуальні сервери SQL і розкладіть ваші бази даних, або перейдіть на фізичну. Залежно від вашої ліцензії на SQL-сервер, можливо, ви зможете додати більше SQL-серверів у віртуальному (на тому ж фізичному хості), не виникаючи більших витрат на ліцензування, але прочитайте документ про віртуальне ліцензування для отримання додаткової інформації.

Я також погоджуюся, що якщо у вас у SQL не вистачає енергії процесора з 4 віртуальними процесорами, то у вас є або серйозне використання додатків, або команди SQL погано написані.


1
Re: "... або команди SQL погано записані." Це майже гарантується, коли використовується код постачальника.
Skyhawk

Дійсно, більша частина трафіку бази даних - це OLTP-матеріали з нашої ERP-системи. У нас також є система робочого процесу від того самого постачальника. Спеціальні речі, написані вдома, - це невеликий відсоток.
Скотт

Наша стара база даних працює з чотирма логічними ядрами (двома двоядерними процесорами), тому ми очікуємо, що буде потрібно більше.
Скотт

0

Близько 4 основних лімітів процесора:

У розділі конфігураційного файлу VM:

[процесори] [count type = ”integer”] 16 [/ count]

Тепер у вас є 16 основних процесорів.

ОНОВЛЕННЯ: Здається, потрібен знімок екрана

введіть тут опис зображення


0

дотримуйтесь цього керівництва

http://surminski.eu/2012/04/17/hyper-v-how-to-add-more-than-4-cores-to-a-virtual-machine/

ви можете знайти файл конфігурації vm xml у папці "Віртуальні машини" каталогу VHD VM, файл конфігурації буде названий під ідентифікатором VM. Нижче посилання - посилання.

довідка: файл конфігурації VM xml

переконайтесь, що ви відредагували файл конфігурації VM xml з блокнотом / блокнотом ++, відкритим під правами адміністратора

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.