Dengan menggunakan virtualisasi, kita dapat menikmati fleksibilitas untuk membuat mesin virtual dengan cepat dengan berbagai konfigurasi CPU virtual (vCPU) untuk berbagai set beban kerja.
Namun saat kita memvirtualisasikan beban kerja yang lebih besar dan lebih menuntut, seperti vm database, diatas prosesor generasi terbaru dengan 24 core atau lebih, ada bebrapa perhatian khusus yang harus diberikan dalam konfigurasi vCPU dan vNUMA untuk memastikan kinerja tetap optimalkan.
vNUMA
vNUMA (virtual non-uniform memory access) adalah metode pengoptimalan akses memori untuk mesin virtual (VM) VMware yang membantu mencegah kemacetan bandwidth memori.
Jika sebuah VM memiliki lebih dari 8 vCPU, vNUMA secara otomatis diaktifkan. Admin dapat menyesuaikan topologi NUMA virtual untuk VM, atau mengaktifkan vNUMA pada VM yang lebih kecil, kita dapat menggunakan pengaturan konfigurasi lanjutan.
Pada VM yang menggunakan banyak CPU virtual (vCPU) lebih cenderung mengakses lebih dari satu node NUMA (memori lokal yang terikat ke prosesor) di host (server fisik).
vCPU
Saat administrator menambahkan vCPU ke mesin virtual, masing-masing vCPU tersebut ditetapkan ke CPU fisik (pCPU), meskipun pCPU sebenarnya mungkin tidak selalu sama.
Harus selalu ada cukup pCPU yang tersedia untuk mendukung jumlah vCPU yang diterapkan ke satu VM atau VM tidak akan booting.
Salah satu keuntungan utama dari virtualisasi adalah kemampuannya untuk berlangganan berlebih, tentu saja kita menggunakan rasio 1: 1 antara jumlah vCPU dengan pCPU pada VM dan jumlah CPU fisik di host.
Pada VMware vSphere esxi 6.0, ada limitasi maksimum 32 vCPU per physical core, dan administrator vSphere dapat mengalokasikan maksimum hingga 4.096 vCPU ke VM pada satu host.
Jumlah aktual vCPU yang dapat dicapai per core bergantung pada beban kerja dan spesifikasi perangkat keras, namun hindari menggunakan hingga 75% dari batas kapasitas.
Untuk setiap beban kerja di luar rasio 1: 1 vCPU ke pCPU untuk mendapatkan waktu prosesor, hypervisor harus menjalankan penjadwalan prosesor untuk mendistribusikan waktu prosesor ke vm yang membutuhkannya.
Oleh karena itu, jika administrator telah membuat rasio 5: 1 vCPU ke pCPU, setiap core prosesor akan mendukung lima vCPU. Semakin tinggi rasionya, semakin tinggi dampak kinerjanya, karena Anda harus memperhitungkan lamanya waktu mesin virtual harus menunggu prosesor fisik tersedia.
Kita dapat melihat kelebihan permintaan CPU, dan saat menentukan berapa lama sebuah vm harus menunggu waktu untuk dilayani oleh prosesor, adalah dengan melihat pada CPU Ready.
Rasio vCPU-ke-pCPU yang ingin dicapai dalam desain Anda bergantung pada aplikasi yang Anda virtualisasikan.
Dengan tidak adanya data empiris, yang umumnya terjadi pada platform cloud yang heterogen, adalah dengan menggunakan best practice, melalui penggunaan template dan mendorong enduser untuk memulai dengan satu vCPU dan melaukan upgrade saat dibutuhkan.
Meskipun beberapa vCPU bagus untuk beban kerja yang mendukung paralelisasi, hal ini akan kontraproduktif dalam kasus aplikasi yang tidak memiliki struktur multi-threaded bawaan. Oleh karena itu, meskipun VM dengan 4 vCPU akan meminta hypervisor akan menunggu hingga 4 pCPU tersedia untuk melayani permintaan VM tersebut.
Pada sebuah host ESXi yang sangat sibuk dengan VM lain, ini bisa memakan waktu lebih lama secara dibandingkan jika VM yang dimaksud hanya memiliki satu vCPU.
Dampak kinerja ini semakin diperluas karena mekanisme penjadwalan ESXi lebih memilih untuk menggunakan pemetaan vCPU ke pCPU yang sama untuk meningkatkan kinerja melalui CPU cache.
CPU Ready Time adalah metrik utama yang perlu dipertimbangkan selain CPU utilisasi. Mengorelasikan CPU dengan memori dan statistik jaringan, serta metrik SAN I/O dan disk I/O, memungkinkan kita untuk secara proaktif menghindari bottleneck dan penurunan kinerja dari overprovisioning resrouce.
Sebagai pedoman, rasio vCPU:pCPU dapat dianggap sebagai titik awal yang baik untuk sebuah desain:
A. rasio 3:1 umumnya tidak akan ada masalah
B. rasio 3:1 ~ 5:1, Akan ada mulai terlihat penurunan kinerja VM dari yang seharusnya
C. rasio 6:1 atau lebih, akan menyebabkan masalah yang signifikan untuk kinerja VM
Sebagai pedoman, pertahankan metrik CPU Ready pada 5% atau kurang. untuk menjamin kinerja & stabilitas system virtualisasi anda.
