Apa itu CPU Virtual (vCPU)?
CPU virtual (vCPU) adalah prosesor dari sebuah mesin virtual (VM). Setiap vCPU mewakili kemampuan untuk menjalankan satu utas pemrosesan pada satu waktu. Hypervisor VM mengelola penjadwalan waktu vCPU ke CPU fisik CPU.
Bagaimana cara kerja CPU Virtual?
Komputer membutuhkan tiga sumber daya utama untuk berfungsi: penyimpanan (ruang disk), memori (RAM), dan komputasi (CPU). Pada sebuah VM, hypervisor mengelola mesin virtual tamu (VM tamu) dan memberitahu atau menetapkan seberapa banyak sumber daya virtual yang mereka dapatkan. Hypervisor kemudian menjadwalkan permintaan dari VM tamu ke hardware fisik.
Setiap vCPU mewakili kemampuan untuk menjalankan satu utas pemrosesan pada CPU fisik secara bersamaan. Jadi, untuk setiap vCPU, ada satu utas pemrosesan yang berjalan pada CPU fisik. Misalnya, jika sebuah VM diberikan empat vCPU, sistem operasi (OS) akan mengharapkan dapat menjalankan empat utas sekaligus. Hypervisor kemudian akan bertanggung jawab untuk menjadwalkan utas-utas yang datang dari VM tamu ke CPU fisik untuk dieksekusi.
Sistem virtualisasi modern tidak menetapkan satu vCPU secara permanen ke satu CPU fisik. Sebaliknya, mereka mengambil utas-utas yang datang dari VM dan menetapkannya sesuai kebutuhan dalam cara berbagi waktu ke inti CPU fisik yang tersedia. Ini memungkinkan pemanfaatan sumber daya CPU yang lebih baik.
Untuk memperumit masalah, sebagian besar CPU server modern dapat menjalankan dua utas per inti CPU dengan menggunakan multithreading atau hyperthreading. Setiap vCPU mewakili sekitar setengah dari kemampuan inti fisik atau satu utas CPU.
Oversubscription vCPU
Menetapkan lebih banyak vCPU daripada inti fisik yang tersedia disebut oversubscription. Sebagian besar oversubscription yang moderat biasanya dapat diterima karena sebagian besar VM jarang menggunakan seluruh CPU mereka. Sebaliknya, mereka sering kali dalam keadaan tidak aktif dalam waktu yang lama, dan kemudian menggunakan banyak sumber daya dalam aktivitas singkat.
Jika banyak vCPU digunakan secara bersamaan dalam sistem oversubscribe, mungkin terjadi kontensi sumber daya, dan kinerja akan terganggu. Untuk membatasi kemungkinan ini, sebaiknya merencanakan berapa banyak vCPU yang digunakan dengan memperhitungkan total CPU fisik dan beban kerja yang diharapkan. Misalnya, VM untuk pengguna akhir mungkin memiliki kinerja yang tidak stabil tergantung pada aktivitas pengguna, sementara server akan lebih dapat diprediksi. Beberapa VM mungkin selalu berjalan dengan penggunaan CPU tinggi dan tidak boleh dioversubscribe.
Penyedia cloud mungkin atau mungkin tidak melakukan oversubscription vCPU tergantung pada jenis VM, biaya, dan syarat dan ketentuan. Misalnya, sebagian besar tier AWS mengalokasikan satu vCPU per utas CPU fisik. Beberapa instans AWS T2 lebih kecil justru diklasifikasikan sebagai Instans Kinerja Burstable, yang tidak mengalokasikan seluruh inti CPU fisik sepanjang waktu.
Untuk hypervisor VM yang didedikasikan, admin dapat menetapkan aturan untuk menentukan bagaimana mereka menangani kontensi sumber daya. Misalnya, VMware ESXi akan menetapkan prioritas yang sama untuk semua VM secara default. Jika administrator ingin memastikan bahwa satu VM selalu memiliki kapasitas tertentu, mereka dapat menetapkan reservasi untuk mendedikasikan sejumlah kekuatan CPU fisik untuknya. Sebuah share juga dapat ditentukan untuk memberikan satu VM prioritas lebih tinggi atau lebih rendah dibandingkan VM lainnya dalam hal pembatasan sumber daya.

Berapa banyak vCPU yang ada dalam satu CPU?
Secara umum, dapat dikatakan bahwa ada satu vCPU pada setiap utas CPU fisik. Sebagian besar CPU server fisik memiliki dua utas per inti, jadi dua vCPU per inti CPU. Untuk menghitung jumlah vCPU pada prosesor Intel Xeon dan AMD, ambil jumlah inti CPU fisik dan kalikan dengan dua.
Untuk CPU tanpa multithreading, seperti dengan prosesor Arm, itu adalah satu vCPU per inti CPU fisik.
Secara praktis, admin dapat menetapkan sebanyak mungkin vCPU per inti CPU fisik sesuai dengan pemanfaatan yang memungkinkan.