VMware ESXi - vCPU - logical processors - physical cores...

Permalänk

VMware ESXi - vCPU - logical processors - physical cores...

Jag har googlat och läst hur mycket som helst om det här, men blir ändå inte riktigt klok på den här specifika frågan.

Exempel:
Vi har en ESXi host med 2 x 16 cores / 32 threads = 32 cores / 64 threads.
I vSphere så syns det att denna host har 64 logical processors.

Om jag tilldelar en vm 1 vCPU, kommer den då att exekvera på 1 fysisk core, eller på 1 "fysisk thread"/logical processor?

Om jag skapar en vm med 20 vCPU, hur många lediga fysiska cores kommer det att krävas innan hypervisorn kan låta denna vm få exekvera? 10 eller 20?

// Andreas

Visa signatur

Gigabyte X570 Aorus Master || Ryzen 5950X || Fractal Design S36 & NF-A12x25 || G.Skill Trident Z Neo 3600 cl16 || MSI 2080 Ti X Trio || Fractal Design Vector RS || Corsair AX850 || Corsair MP600 1TB || Samsung 970 Evo Plus 1TB || Samsung 980 PRO 2TB

Permalänk
Medlem
Skrivet av cyberknutte:

Jag har googlat och läst hur mycket som helst om det här, men blir ändå inte riktigt klok på den här specifika frågan.

Exempel:
Vi har en ESXi host med 2 x 16 cores / 32 threads = 32 cores / 64 threads.
I vSphere så syns det att denna host har 64 logical processors.

Om jag tilldelar en vm 1 vCPU, kommer den då att exekvera på 1 fysisk core, eller på 1 "fysisk thread"/logical processor?

Om jag skapar en vm med 20 vCPU, hur många lediga fysiska cores kommer det att krävas innan hypervisorn kan låta denna vm få exekvera? 10 eller 20?

// Andreas

Kanske inte besvarar dina frågor till fullo, men detta är väl iaf en startpunkt: https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsph...

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Sötast

En vCPU är inte per automatik bunden till en core. Det vore ganska ineffektivt. Såklart finns möjligheten till det dock.

Tänk dig en eller flera vCPU som applikationer som körs på din egen dator. De är flytande och kan röra sig mellan olika cores beroende på hur cpun är lastad.

Man kan också välja att ge viktigare maskiner en högre prioritet för att se till att de tillgodoses först (vilket först sker om cpun är fullt, eller överbelastad) annars har alla VM's samma "blås"

Edit:

https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsph...

"When CPU resources are overcommitted, the ESXi host time-slices the physical processors across all virtual machines so each virtual machine runs as if it has its specified number of virtual processors. When an ESXi host runs multiple virtual machines, it allocates to each virtual machine a share of the physical resources. With the default resource allocation settings, all virtual machines associated with the same host receive an equal share of CPU per virtual CPU. This means that a single-processor virtual machines is assigned only half of the resources of a dual-processor virtual machine."

Permalänk

Även om en ESXi host kan vara värd åt 90 vm med 8 vcpu var, så är det ju inte så att de alla faktisk exekverar samtidigt. Vid ett visst givit tillfälle så är det kanske 4st som faktiskt exekveras och alla andra står i ett väntläge. När hypervisorn schemalägger en vm till att få exekvera så måste det finnas lediga cpu cores att exekvera på, och detta antal är ju kopplat till hur många vcpu som vm:en har.

Frågan är alltså hur många fysiska cores som behövs i förhållande till antal vcpu som är konfigurerade.

Krävs det 1 fysisk core per vcpu, eller räcker det med en logisk processor per vcpu?

Visa signatur

Gigabyte X570 Aorus Master || Ryzen 5950X || Fractal Design S36 & NF-A12x25 || G.Skill Trident Z Neo 3600 cl16 || MSI 2080 Ti X Trio || Fractal Design Vector RS || Corsair AX850 || Corsair MP600 1TB || Samsung 970 Evo Plus 1TB || Samsung 980 PRO 2TB

Permalänk
Skrivet av cyberknutte:

Även om en ESXi host kan vara värd åt 90 vm med 8 vcpu var, så är det ju inte så att de alla faktisk exekverar samtidigt. Vid ett visst givit tillfälle så är det kanske 4st som faktiskt exekveras och alla andra står i ett väntläge. När hypervisorn schemalägger en vm till att få exekvera så måste det finnas lediga cpu cores att exekvera på, och detta antal är ju kopplat till hur många vcpu som vm:en har.

Frågan är alltså hur många fysiska cores som behövs i förhållande till antal vcpu som är konfigurerade.

Krävs det 1 fysisk core per vcpu, eller räcker det med en logisk processor per vcpu?

Som nämnts är en av hypervisorns uppgifter att dela ut systemresurser någorlunda rättvist. Har du övertilldelat vCPU och alla maskiner försöker jobba hårt samtidigt kommer detta resultera i att maskinerna får ställa sig i kö och vänta på sin tur. Detta syns som Ready time eller Ready percent om du tittar i maskinens status eller i esxtop via ssh.
Du hittar några tumregler i den här artikeln.