Kecepatan disk: baseline dan burst
Bagaimana batas kecepatan disk dihitung per tier, mengapa burst 30 detik diperlukan, cara mengukur kecepatan nyata, dan apa yang harus dilakukan jika Anda menyentuh batasnya.
Diperbarui 23 Agustus 2026
Disk di VPS menggunakan NVMe, tetapi kecepatannya dibatasi oleh tier agar satu mesin tidak menghabiskan sumber daya bersama dari node. Memahami angka-angka ini menyelamatkan Anda dari pertanyaan "mengapa database lambat padahal CPU kosong".
Cara menghitungnya
Baseline tulis adalah 60 MB/s per core, tetapi tidak lebih rendah dari 60 dan tidak lebih tinggi dari 400 MB/s. Baca adalah dua kali baseline tulis. Di atas baseline, burst sebesar tiga kali nilainya tersedia selama 30 detik.
| Tier | Core | Baseline tulis | Baseline baca | Burst tulis (30 dtk) |
|---|---|---|---|---|
| VDS-1 | 1 | 60 MB/s | 120 MB/s | 180 MB/s |
| VDS-2 | 2 | 120 MB/s | 240 MB/s | 360 MB/s |
| VDS-3 | 4 | 240 MB/s | 480 MB/s | 720 MB/s |
| VDS-4 | 6 | 360 MB/s | 720 MB/s | 1080 MB/s |
| VDS-5 | 8 | 400 MB/s | 800 MB/s | 1200 MB/s |
| VDS-6 | 10 | 400 MB/s | 800 MB/s | 1200 MB/s |
Burst mencakup hal-hal yang seharusnya: startup aplikasi, ekstraksi arsip, penerapan migrasi. Aliran tulis yang stabil — menyalin gigabyte, build, memindai database besar — berjalan pada baseline.
Cara mengukurnya
sudo apt install -y fio
fio --name=w --rw=write --bs=1M --size=2G --numjobs=1 \
--runtime=60 --time_based --end_fsync=1 --directory=/var/tmp
Detik-detik pertama akan menunjukkan burst, lalu kecepatan turun ke baseline — ini gambaran yang normal dan diharapkan, bukan kerusakan.
Pemeriksaan kasar cepat tanpa memasang paket:
dd if=/dev/zero of=/var/tmp/testfile bs=1M count=2048 oflag=direct
rm /var/tmp/testfile
Jangan menjalankan tes disk di mesin produksi selama jam kerja. Tes ini benar-benar akan menghabiskan seluruh bandwidth yang tersedia, dan situs Anda akan butuh beberapa detik untuk merespons selama beberapa menit itu. Dan jangan tinggalkan file tes: dua gigabyte di disk 40 GB adalah porsi yang cukup besar, lihat ruang disk.
Cara mengetahui bahwa disk adalah bottleneck
sudo apt install -y sysstat
iostat -x 2 5
vmstat 2 5
Perhatikan dua metrik: %util mendekati 100 dan await dalam puluhan milidetik menunjukkan antrean disk. Di vmstat tandanya sama — kolom b yang terus bertambah (proses menunggu) dengan persentase utilisasi CPU yang rendah.
Gejala lain: load average tinggi dengan CPU hampir menganggur. Load average Linux juga menghitung proses yang menunggu disk.
Siapa tepatnya yang menulis:
sudo iotop -o -b -n 3
Apa yang harus dilakukan jika Anda mencapai bottleneck
- Pisahkan waktunya. Penyalinan, build registry, laporan — di malam hari dan tidak bersamaan. Lihat tugas terjadwal.
- Batasi tugas latar belakang.
rsync --bwlimit,nice -n 19 ionice -c3 <command>untuk semua yang tidak mendesak. - Kurangi penulisan. Batasi ukuran log, nonaktifkan verbositas berlebihan di aplikasi, pindahkan cache ke memori (
tmpfs) jika akan bertahan setelah reboot. - Setel database. Di PostgreSQL dan MySQL, sebagian besar penulisan adalah log transaksi. Lebih banyak memori untuk buffer berarti lebih sedikit akses disk.
- Naikkan tier. Baseline tumbuh seiring core: dari VDS-1 ke VDS-2 menjadi dua kali lipat. Upgrade yang direncanakan hanya bisa ke atas, dengan pembayaran tambahan untuk sisa hari dari masa berbayar.
Kesalahan umum
- Mengukur kecepatan dengan
ddtanpaoflag=direct. Data mengendap di page cache, dan angkanya menjadi terlalu tinggi. - Menganggap burst sebagai kecepatan berkelanjutan. 30 detik pertama cepat, lalu baseline — ini memang desainnya.
- Menyimpan swap di disk aktif dan melakukan swapping ke dalamnya. Saat memori kurang, swap mengubah disk menjadi bottleneck: lebih baik batasi kontainer, lihat batas sumber daya.