Episode ini membahas pengukuran dan pengujian Firecracker: mengukur waktu boot cold versus snapshot, overhead memori, throughput IOPS dan bandwidth, menjalankan load test dengan ribuan microVM per host, serta latihan failure injection untuk memvalidasi ketahanan platform.

Firecracker diklaim boot ~125 ms dan overhead < 5 MiB. Klaim seperti itu harus diuji — di host kalian, dengan workload kalian. Episode 16 mengubah kalian dari pengguna Firecracker menjadi insinyur yang mengukur Firecracker: metodologi benchmark yang benar, angka yang harus diukur, dan cara validasi ketahanan platform di bawah tekanan.
Mengapa episode ini penting? Semua keputusan produksi — berapa banyak microVM per host, kapan memakai snapshot, berapa besar overhead — harus berbasis angka, bukan intuisi. Episode ini memberi kerangka untuk mendapat angka-angka itu dengan cara yang bisa dipertanggungjawabkan.
Waktu boot adalah metrik paling ikonik. Yang perlu dibedakan dengan jelas:
Metode mengukur yang praktis — pakai timestamp di dalam guest dan bandingkan dengan waktu host:
# Di guest: catat waktu kernel dimuat (dari dmesg) dan saat aplikasi siap
cat /proc/uptimeUntuk pengukuran yang presisi dari sisi host, ukur selisih antara InstanceStart dan saat output guest "ready":
time curl --unix-socket /tmp/firecracker.sock -X PUT http://localhost/actions \
-d '{ "action_type": "InstanceStart" }'Interpretasi yang benar:
Perhatikan variabilitas: ukur 10+ kali, ambil median dan p95, bukan sekali jalan. Waktu boot dipengaruhi beban host, NUMA, dan page cache.
Overhead Firecracker (< 5 MiB per VM di atas memori guest) bisa diukur dengan cgroup atau /proc:
ps -o pid,rss,comm -C firecrackerBaca dengan benar:
mem_size_mib).mem_size_mib + overhead = total footprint VM.Untuk pengukuran menyeluruh, jumlahkan juga page cache dari rootfs yang di-share — inilah alasan rootfs read-only bisa membuat 10 VM dengan image sama memakai page cache yang sama. Pengukuran yang jujur: ukur host sebelum dan sesudah menambah N VM, bagi selisihnya dengan N — bukan sekadar menjumlahkan RSS.
Storage dan network perlu angka throughput. Dua alat standar:
fio --name=test --rw=randread --size=64m --bs=4k \
--direct=1 --numjobs=4 --runtime=30 --group_reportingiperf3 -s # di satu guest
iperf3 -c <ip-guest-lain> # di guest lainInterpretasi: IOPS storage dan bandwidth network diukur setelah rate limiter dan cgroup aktif — itulah angka yang relevan untuk produksi. Bandingkan juga angka tanpa rate limiter untuk memahami margin yang tersedia. Ukur beberapa arah (rx/tx) dan beberapa ukuran blok; satu angka tidak menceritakan keseluruhan cerita.
Keputusan arsitektur terbesar — berapa microVM per host — harus diverifikasi dengan load test nyata. Metodologi yang sehat:
Script sederhana untuk scale test memakai jailer + API:
for i in $(seq 1 200); do
jailer --id "vm-$i" --exec-file /usr/local/bin/firecracker \
--uid 123 --gid 100 --chroot-base-dir /srv/jailer &
doneAmati kurva boot time terhadap jumlah VM. Densitas yang sehat menjaga boot tetap stabil; densitas yang terlalu tinggi membuat boot melambat eksponensial. Data ini yang menentukan angka kapasitas di episode 19.
Warning
Saat load test, jangan ubah variabel lain secara bersamaan. Naikkan satu dimensi saja (jumlah VM, atau ukuran memori, atau bandwidth) setiap kali — kalau tidak, kalian tidak akan tahu penyebab penurunan performa. Ini aturan dasar eksperimen yang sering dilanggar.
Platform yang sehat tidak terlihat saat normal — ia terlihat saat gagal. Failure injection mensimulasikan kegagalan untuk memvalidasi bahwa sistem pulih:
tc netem atau throttling) — apakah timeout handling berfungsi?kill -9 <firecracker-pid>Amati: apakah socket dibersihkan? Apakah TAP dibebaskan? Apakah cgroup kosong? Sistem yang baik meninggalkan sedikit sampah; sistem yang buruk mengakumulasi sumber daya bocor hingga host kehabisan.
Untuk platform kalian sendiri di atas Firecracker, tiga tingkat pengujian:
Pola penting untuk test yang stabil: selalu bersihkan resource di akhir test (hapus chroot, TAP, cgroup), dan jangan menjalankan test paralel yang berbagi socket atau port yang sama. Test Firecracker yang baik bisa diulang ribuan kali tanpa degradasi host.
Inti yang harus dibawa pulang:
Di episode 17 selanjutnya kita akan melihat fitur terbaru: Firecracker 1.16 & Fitur Terbaru — perbaikan CVE-2026-5747 di v1.16.1, dukungan VMClock device, pengujian di Intel Granite Rapids, peningkatan snapshot, device passthrough VFIO eksperimental, dan arah integrasi rust-vmm.