Membahas anatomi VM: alokasi vCPU dengan -smp topology cores threads dan sockets, NUMA awareness, RAM dengan -m, machine type q35 vs pc, firmware SeaBIOS vs OVMF UEFI, serta opsi display VGA vs virtio

Setelah environment terverifikasi di episode 3, sekarang kita bedah anatomi sebuah VM. Ketika kalian menulis qemu-system-x86_64 -smp 4 -m 2048, kalian sebenarnya membuat keputusan arsitektur: berapa vCPU, berapa RAM, dan bagaimana device disusun. Keputusan ini — terutama topology vCPU, machine type, dan firmware — menentukan performa dan kompatibilitas VM.
Pahami dulu: VM bukan "komputer mini". VM adalah abstraksi yang dipetakan ke resource fisik host. vCPU adalah thread yang dijadwalkan kernel, RAM adalah range address yang dipetakan lewat EPT/NPT, dan disk adalah file. Semakin akurat pemetaan ini, semakin baik performanya.
-smp menentukan jumlah dan susunan CPU virtual:
qemu-system-x86_64 -smp sockets=1,cores=4,threads=2Kombinasi ini menghasilkan 8 vCPU (1 socket × 4 cores × 2 threads). Beri tahu juga jumlah CPU total dengan shorthand:
qemu-system-x86_64 -smp 4Ini setara cores=4 dengan default lain-lainnya 1. Aturan praktis: samakan topology dengan guest workload — untuk database multithreaded, cores lebih penting daripada threads.
Pada host multi-socket, memory bersifat NUMA (Non-Uniform Memory Access): akses ke RAM milik socket sendiri lebih cepat. QEMU bisa memetakan vCPU ke NUMA node host agar VM menyadari topologi fisik:
qemu-system-x86_64 \
-smp sockets=2,cores=4,threads=1 \
-object memory-backend-ram,size=8G,id=mem0,host-nodes=0,policy=bind \
-object memory-backend-ram,size=8G,id=mem1,host-nodes=1,policy=bind \
-numa node,cpus=0-3,memdev=mem0 \
-numa node,cpus=4-7,memdev=mem1Tanpa pemetaan NUMA, guest melihat memory sebagai satu blok homogen — memori VM bisa "berada" jauh dari vCPU yang mengeksekusinya. Ini detail yang sering diabaikan, tetapi berdampak besar di workload berat. Di episode 19 kita bahas CPU pinning untuk menuntaskan ini.
Alokasi RAM sangat sederhana:
qemu-system-x86_64 -m 2048-m 2048 berarti 2 GiB. Untuk performa, pertimbangkan hugepages — kita bedah di episode 19. Jangan berikan seluruh RAM host ke satu VM; sisa untuk host dan kernel caches.
Machine type menentukan "motherboard virtual" — chipset dan bus yang disimulasikan:
| Machine | Karakteristik | Kapan Dipakai |
|---|---|---|
pc (i440fx) | Legacy, kompatibilitas luas, dukungan OS tua | VM lawas, distribusi lama |
q35 | Modern, PCIe, lebih banyak slot, UEFI ready | Standar untuk VM baru |
qemu-system-x86_64 -machine q35Gunakan q35 untuk semua VM baru: ia mendukung PCIe (penting untuk NVMe virtual, passthrough GPU), ICH9, dan kompatibilitas firmware UEFI. Machine pc hanya untuk meniru hardware lama.
Tip
Lihat daftar machine type yang tersedia dengan qemu-system-x86_64 -machine help. Versi QEMU selalu mempertahankan machine type lama (misal pc-q35-11.0) agar VM yang sudah ada tidak rusak saat upgrade — inilah dasar kebijakan kompatibilitas QEMU.
Firmware adalah kode yang menjalankan POST dan booting VM:
qemu-system-x86_64 -machine q35 -bios /usr/share/OVMF/OVMF_CODE.fdPada Debian/Ubuntu, paket ovmf menyediakan file ini. Distribusi modern (Ubuntu 24.04+, Rocky 9+) merekomendasikan UEFI; sebagian fitur (misal TPM virtual untuk Windows 11) hanya tersedia dengan OVMF.
VM perlu "layar". Pilihannya:
qemu-system-x86_64 -vga stdqemu-system-x86_64 -device virtio-gpu-vga std memakai emulasi VGA standar; virtio-gpu adalah paravirtual device dengan overhead lebih kecil dan dukungan resolusi dinamis. Untuk guest Linux modern, pakai virtio-gpu. Untuk headless server (tanpa GUI), kalian bisa memakai -nographic atau hanya serial console — dibahas di episode 8.
-smp 8 di host 4 core membuat scheduler thrashing; sementara boleh, untuk produksi batasi.pc tidak bisa pindah ke q35 tanpa reinstall — tentukan sejak awal.Pada episode 4 ini, kalian telah memahami anatomi VM dari sisi resource.
Inti yang harus dibawa pulang:
-smp mengatur topology vCPU: sockets/cores/threads — samakan dengan workload guest.-m mengalokasikan RAM; jangan overcommit tanpa perhitungan.q35 untuk VM baru, pc hanya untuk legacy.virtio-gpu untuk Linux guest, -vga std untuk kompatibilitas.Di episode 5 selanjutnya, kita akan menguasai disk images dengan qemu-img — membuat image dengan qemu-img create, mengonversi antar format (convert), resize, format qcow2 vs raw, serta fitur sparse, copy-on-write, snapshot, dan compression. Sampai jumpa di episode 5!