Bali, Indonesia
Insights

Kenapa VPS Tetap Lemot Padahal Pemakaian CPU Masih Rendah

October 16, 2026
0:00
Pernahkah kamu mengakses website atau menjalankan perintah di terminal VPS, lalu semuanya terasa lambat merespons padahal dashboard pemantauan menunjukkan penggunaan CPU hanya 10 atau 15 persen? Halaman web memuat lama, SSH terasa mengetik dengan jeda, tetapi grafik server tampak santai tanpa beban berat. Kondisi seperti ini sering memicu salah paham. Secara intuitif, kita menganggap server yang lambat harusnya ditandai dengan prosesor yang bekerja 100 persen. Ketika angka utilisasi CPU tetap rendah, banyak orang mengira ada masalah pada jaringan, DNS, atau aplikasi web mereka. Padahal, pada lingkungan virtualisasi, metrik CPU yang tampak rendah sering kali menyembunyikan hambatan lain di tingkat kernel maupun hypervisor. Berikut beberapa anggapan umum mengenai performa VPS yang tampak santai beserta realitas teknis di baliknya.
Anggapan ini terdengar sangat masuk akal. Jika sistem operasi melaporkan utilisasi CPU di angka 10 persen, asumsinya ada 90 persen daya komputasi yang siap digunakan kapan saja untuk menjalankan kode PHP, query database, atau melayani request web server. Kenyataannya, di dalam VPS (virtual private server), sistem operasi kamu berjalan di atas sebuah hypervisor bersama dengan mesin virtual milik pengguna lain. Hypervisor bertugas membagi waktu pemrosesan pada CPU fisik ke semua virtual CPU (vCPU). Ketika VPS kamu ingin menjalankan sebuah tugas komputasi, ia meminta siklus waktu ke hypervisor. Jika server fisik sedang sangat sibuk karena ada tenant lain yang rakus resource, hypervisor akan menahan permintaan tersebut. Waktu tunggu paksa ini disebut sebagai CPU steal time. Dari sudut pandang VPS kamu, prosesor tidak sedang bekerja keras menghitung sesuatu, sehingga utilisasi CPU pengguna (user) dan sistem (system) tetap tercatat rendah. Namun, proses yang kamu jalankan sebenarnya mandek karena tidak diberi giliran oleh CPU fisik. Kamu bisa melacak indikasi ini langsung dengan menjalankan perintah top di terminal dan memperhatikan baris metrik CPU:
BASH
# Jalankan perintah top lalu perhatikan baris %Cpu(s)
top -b -n 1 | grep '%Cpu'

# Contoh format output:
# %Cpu(s):  6.2 us,  2.1 sy,  0.0 ni, 48.5 id,  1.2 wa,  0.0 hi,  0.0 si, 42.0 st
Perhatikan nilai di ujung kanan dengan kode st (steal). Pada contoh di atas, nilai st mencapai 42.0 persen, sementara us (user space) hanya 6.2 persen. Artinya, lebih dari sepertiga siklus komputasi yang diminta oleh sistem operasi kamu tertahan oleh hypervisor. Inilah alasan kenapa VPS terasa lambat merespons meskipun beban kerja aplikasimu sendiri tampak minim.
Ketika melihat persentase id (idle) pada CPU berada di atas 80 persen namun respon aplikasi tetap melambat, kecurigaan pertama biasanya langsung diarahkan ke latensi jaringan, throughput bandwidth, atau provider ISP pengunjung. Kenyataannya, prosesor yang berstatus idle tidak selalu berarti sistem dalam kondisi sehat. Di Linux, ada status khusus bernama wa atau I/O wait. I/O wait sebenarnya adalah bentuk lain dari idle, tetapi dengan kondisi khusus: CPU tidak melakukan apa-apa karena thread atau proses yang sedang aktif terhenti, menunggu perangkat penyimpanan (disk) menyelesaikan operasi baca atau tulis. Jika VPS kamu menggunakan shared storage yang sedang jenuh, atau jatah IOPS (input/output operations per second) pada disk virtual kamu sudah habis, aplikasi database seperti MySQL atau PostgreSQL akan tertahan menunggu data diambil dari disk. Selama proses menunggu itu berlangsung, CPU tidak perlu bekerja keras melakukan perhitungan matematika. Akibatnya, pemakaian CPU tetap sangat rendah, sementara website kamu mengalami loading lama hingga akhirnya timeout. Masalah I/O wait ini juga sangat sering memperburuk performa query database di CMS populer. Jika kamu mengelola situs berbasis WordPress yang lambat padahal CPU tenang, ada baiknya memeriksa pola query dan konfigurasi database seperti yang dibahas pada Practical Notes on WordPress Performance & Debugging for Everyday Troubleshooting.
Banyak administrator sistem pemula menganggap nilai load average adalah representasi persentase penggunaan CPU. Mereka berasumsi jika load average bernilai 4.0 pada VPS dengan 1 vCPU, maka CPU sedang bekerja 400 persen atau mengalami overload komputasi. Kenyataannya, cara Linux menghitung load average berbeda dengan sistem operasi Unix tradisional. Di Linux, load average menghitung jumlah proses yang berada dalam status runnable (sedang berjalan atau siap berjalan di CPU, ditandai kode R) ditambah proses yang berada dalam status uninterruptible sleep (biasanya menunggu operasi disk I/O, ditandai kode D). Artinya, kamu bisa saja mendapati sebuah VPS dengan 1 core vCPU memiliki load average sebesar 10.00, tetapi penggunaan CPU aktualnya hanya 5 persen. Kondisi ini terjadi ketika ada sepuluh proses yang antre menunggu antrean disk yang lambat atau terblokir oleh lock tertentu. Membaca load average tanpa membedah status proses di top atau ps sering kali membuat kita salah mendiagnosis akar masalah.
Ketika VPS terasa lambat dan opsi upgrade tersedia di panel hosting, langkah paling umum yang sering diambil adalah langsung menaikkan paket ke jumlah vCPU yang lebih tinggi, misalnya dari 2 vCPU menjadi 4 vCPU. Kenyataannya, jika akar masalahnya adalah CPU steal time atau I/O wait, menambah core vCPU justru bisa membuat performa VPS semakin buruk. Hypervisor modern yang menggunakan mekanisme penjadwalan SMP (symmetric multiprocessing) umumnya harus mencari sejumlah core fisik yang tersedia secara bersamaan sebelum bisa menjadwalkan siklus komputasi untuk VM multi-core. Jika kamu menggunakan 4 vCPU pada node hypervisor yang sedang padat, hypervisor harus mengoordinasikan empat thread fisik secara bersamaan agar vCPU kamu bisa mengeksekusi instruksi. Jika kondisi node fisik sangat sibuk, peluang mendapatkan alokasi serentak justru lebih sulit dibandingkan saat kamu hanya meminta 1 atau 2 vCPU. Akibatnya, nilai CPU steal bisa melonjak lebih tinggi setelah upgrade paket vCPU. Begitu pula jika masalah utamanya adalah keterbatasan disk I/O. Menambah vCPU tidak akan mempercepat kecepatan baca-tulis storage yang memang sudah jenuh di tingkat hypervisor.
Menilai kesehatan VPS tidak bisa hanya mengandalkan satu grafik utilisasi prosesor di dashboard penyedia hosting. Ketika server terasa berat merespons padahal CPU usage terlihat rendah, langkah awal yang paling sehat adalah membuka terminal dan membaca rincian metrik CPU di top secara menyeluruh. Perhatikan angka st untuk memastikan apakah server fisik hypervisor sedang mengalami overcommit dan menahan siklus prosesormu. Periksa angka wa untuk melihat apakah sistem sedang tersedak antrean storage. Dengan memahami perbedaan antara prosesor yang benar-benar menganggur dan prosesor yang terpaksa menunggu, kamu bisa menentukan solusi yang tepat, apakah perlu mengoptimasi query database, melaporkan indikasi noisy neighbor ke penyedia hosting, atau memindahkan data ke storage dengan profil IOPS yang lebih memadai.