CPU vs. vCPU: Porovnání fyzických a virtuálních procesorů
Hlavní rozdíl mezi CPU a vCPU spočívá v tom, že CPU jsou fyzické povahy, zatímco vCPU jsou virtuální variantou založenou na softwaru. Tyto dva typy centrálních procesorových jednotek se liší také z hlediska výkonu a způsobu použití.
Rozdíl 1: Technologický základ
Rozhodující rozdíl mezi CPU a vCPU je technického rázu. CPU je součást počítačového hardwaru, která se běžně označuje jako „procesor“. Moderní CPU mají obvykle více jader, na která mohou rozdělovat procesy, které je třeba provést.
Naopak vCPU je softwarová varianta řídicí jednotky počítače. Neexistuje ve fyzické podobě, ale je založena na fyzické CPU. V závislosti na požadavcích lze z klasické fyzické CPU odvodit několik vCPU. Ačkoli vCPU nemůže být založena na více fyzických CPU, může vCPU využívat více jader fyzické CPU.
Pro vytvoření a přiřazení vCPU k virtuálnímu stroji (VM) hypervizory přistupují k jádrům nebo vláknům fyzických procesorů, které jsou k dispozici.
Rozdíl 2: Výkon
Pokud jde o výkon, zaznamenáte výrazný rozdíl ve výpočetním výkonu virtuálních procesorů (vCPU) a fyzických procesorů (CPU). Důvodem je skutečnost, že virtuální procesory jsou, přísně vzato, softwarové podjednotky fyzického procesoru. Pokud porovnáte jeden virtuální procesor a jeden fyzický procesor se stejnou taktovací frekvencí (gigahertz), virtualizovaná varianta není tak výkonná jako její hardwarová obdoba. To je částečně způsobeno tím, že koordinace s fyzickým CPU vyžaduje čas. I když je tato doba často zanedbatelná, stává se znatelnou při provádění zvláště náročných úkolů.
Kromě toho fyzický procesor s rozdělenými jádry a vlákny může zpracovávat několik instrukcí nebo procesů přímo a současně. K tomu by bylo nutné vCPU doplnit dalšími vCPU, což může být poměrně problematické. S rostoucím počtem vCPU se regulace času provádění různých procesů stává pro plánovač procesoru stále složitější. Výsledné čekací doby znamenají, že výkon virtuální sítě procesorů nelze plně využít.
Rozdíl 3: Oblast použití
Procesory jsou srdcem klasického počítače. Bez dostatečného výpočetního výkonu by počítače nebyly schopny provádět celou řadu úkolů, jako jsou hry, streamování, úprava obrázků a videí nebo výpočty. Fyzické procesory se také používají v mnoha dalších běžných zařízeních, jako jsou kávovary, myčky nádobí, ledničky a samozřejmě smartphony a další mobilní zařízení.
vCPU přebírají roli centrální výpočetní komponenty ve virtualizovaných prostředích. Lze pokrýt také řadu scénářů použití, pokud jde o virtuální stroje s vlastním operačním systémem. Obzvláště populární jsou testovací prostředí a hostování serverů/aplikací, jako jsou databázové servery, cloudové úložiště a virtuální privátní servery (VPS). Zde je zcela zřejmé, že nejde ani tak o srovnání CPU a vCPU, ale spíše o to, jak mohou fyzický a virtualizovaný výpočetní výkon vzájemně interagovat. Základní fyzický CPU lze použít jako základ pro několik virtualizovaných prostředí, která běží současně pro několik uživatelů. Právě to činí vCPU tak zajímavými pro poskytovatele a uživatele cloudových služeb.
Jak se CPU převádějí na vCPU?
Pokud chcete použít fyzický procesor počítače k poskytování virtuálních procesorů pro jeden nebo více virtuálních počítačů, můžete pomocí následujícího vzorce zhruba vypočítat počet virtuálních procesorů, které lze poskytnout:
(Vlákna x jádra) x počet fyzických procesorů = počet virtuálních procesorů
Například pokud jste nainstalovali procesor se čtyřmi jádry a osmi vlákny, můžete poskytnout až 32 virtuálních procesorů:
(8 vláken x 4 jádra) x 1 = 32 vCPU
Počet jader a vláken vašeho procesoru můžete kdykoli zjistit pomocí několika jednoduchých kroků. Pokud pracujete na počítači se systémem Windows, postupujte následovně:
- Pomocí klávesové zkratky Ctrl + Shift + Esc otevřete Správce úloh.
- Klikněte na nabídku Výkon.
- Zde najdete seznam informací, ve kterém jsou uvedeny hodnoty pro jádra, logické procesory (vlákna) a sokety (fyzické procesory).

Pokud používáte operační systém Linux, můžete zjistit informace o procesoru pomocí terminálu a následujícího příkazu:
lscpubash