Kenapa VPS Murah Bisa Lambat? Kenali Noisy Neighbor
VPS kadang lambat bukan karena aplikasimu, tapi karena tetangga di host yang sama. Kenali tanda noisy neighbor, cara mengukur steal time, dan solusinya.
Jawaban singkat
Noisy neighbor adalah VPS lain di server fisik yang sama yang memakai CPU, disk, atau jaringan secara berlebihan sehingga VPS-mu ikut melambat. Tandanya terlihat dari nilai steal time (st) yang tinggi di top atau vmstat dan performa disk yang naik turun tanpa sebab dari sisi aplikasimu.
Daftar isi
Situasinya sering begini. Website berjalan normal pagi hari, lalu menjelang malam halaman mulai lambat dibuka. Kamu cek aplikasi, tidak ada perubahan. Trafik juga biasa saja. Grafik CPU di dalam VPS pun tidak penuh. Tapi semuanya terasa berat, lalu keesokan paginya kembali normal sendiri.
Kalau pola seperti itu terjadi berulang, ada kemungkinan penyebabnya bukan di dalam VPS-mu, melainkan di sebelahnya. Dalam dunia virtualisasi, ini disebut noisy neighbor: tamu lain di server fisik yang sama yang sedang menyedot sumber daya bersama, sehingga jatah untukmu ikut tergerus.
Satu mesin fisik, banyak penghuni
VPS adalah mesin virtual yang berjalan di atas server fisik bersama VPS lain. Hypervisor seperti KVM membagi CPU, memori, disk, dan jaringan host itu ke setiap tamu. Penjelasan dasarnya ada di apa itu virtualisasi KVM.
Pembagian memori umumnya cukup tegas. Yang lebih rawan adalah CPU dan disk. Penyedia bisa menjual total vCPU lebih banyak daripada inti fisik yang tersedia, dengan asumsi tidak semua tamu memakai CPU penuh di waktu yang sama. Praktik ini disebut overcommit dan wajar di industri, karena membuat harga lebih terjangkau. Masalah muncul bila rasio itu terlalu tinggi, atau bila beberapa tetangga kebetulan menjalankan pekerjaan berat bersamaan: render video, kompilasi, penambangan kripto, atau backup besar.
Hubungan antara vCPU dan inti fisik dibahas lebih jauh di apakah vCPU sama dengan core fisik.
Bagaimana cara tahu VPS-mu terkena noisy neighbor?
Indikator paling jelas untuk CPU adalah steal time. Ini adalah persentase waktu ketika VPS-mu sebenarnya siap bekerja, tetapi hypervisor sedang memberikan CPU fisik ke tamu lain. Nilainya bisa dilihat langsung dari dalam VPS Linux.
Di top, lihat baris %Cpu(s) dan angka di kolom st. Di vmstat 1 10, perhatikan kolom paling kanan st. Untuk rincian per vCPU, paket sysstat menyediakan mpstat -P ALL 1 5 dengan kolom %steal.
Untuk disk, gejalanya biasanya wa (iowait) yang tinggi padahal aplikasimu tidak sedang menulis atau membaca banyak data. Jalankan iostat -x 1 5 (juga dari sysstat) dan lihat kolom await serta %util. Bila waktu tunggu melonjak tanpa ada beban baca tulis yang besar dari prosesmu sendiri, besar kemungkinan antrean disk di host sedang dipenuhi tamu lain.
Cara membaca hasilnya kira-kira seperti ini:
| Pengamatan | Kemungkinan artinya | Langkah berikutnya |
|---|---|---|
st hampir selalu 0 sampai 2% | Normal, CPU tidak berebut | Cari penyebab lambat di aplikasi |
st sering di atas 5 sampai 10% di jam tertentu | Host padat di jam itu | Catat pola waktunya, kumpulkan data |
st tinggi terus-menerus | Host kelebihan beban atau jatah CPU dibatasi | Laporkan ke penyedia dengan bukti |
wa tinggi, await disk melonjak, bebanmu kecil | Antrean disk di host penuh | Uji disk berulang di jam berbeda |
CPU rendah, st rendah, tetap lambat | Bukan noisy neighbor | Cek database, query, memori, jaringan |
Ambang angka di atas bukan aturan baku, melainkan patokan praktis. Yang lebih penting adalah polanya. Steal time sesekali naik itu biasa. Steal time yang selalu naik setiap malam dan bersamaan dengan keluhan pengguna adalah bukti yang kuat.
Bila steal time rendah tetapi server tetap lambat, masalahnya mungkin ada di tempat lain. Kemungkinan lainnya dibahas di server lambat padahal CPU rendah.
Tetangga juga bisa mengganggu jaringan
CPU dan disk bukan satu-satunya sumber daya bersama. Port jaringan di host juga dipakai ramai-ramai. Bila salah satu tamu mengirim atau menerima trafik sangat besar, misalnya karena sedang diserang DDoS atau menjadi tempat unduhan file besar, tamu lain bisa merasakan latensi naik dan paket hilang.
Gejala ini lebih sulit dibuktikan dari dalam VPS. Cara paling sederhana adalah menjalankan ping atau mtr ke beberapa tujuan secara berkala dan membandingkan hasil di jam normal dan jam lambat. Bila latensi ke semua tujuan naik bersamaan, termasuk ke gateway pertama di jaringan penyedia, masalahnya kemungkinan besar ada di sisi host atau jaringan penyedia, bukan di internet umum.
Satu hal yang perlu dicatat: tidak semua kelambatan di jam ramai berarti tetangga. Trafik pengunjungmu sendiri juga biasanya memuncak di malam hari. Karena itu, bandingkan selalu dengan beban aplikasimu sendiri (jumlah permintaan per menit, jumlah koneksi database) di jam yang sama. Baru setelah bebanmu terbukti stabil sementara performa turun, tuduhan ke noisy neighbor punya dasar.
Kumpulkan bukti sebelum mengeluh
Penyedia akan lebih mudah membantu bila kamu datang dengan data, bukan sekadar "VPS saya lambat". Rekam vmstat atau mpstat secara berkala, misalnya setiap menit selama beberapa hari, lalu simpan ke file log. Tambahkan uji disk dan CPU sederhana di jam sepi dan jam ramai, lalu bandingkan hasilnya. Panduan langkahnya ada di cara menguji performa VPS dengan benchmark sederhana.
Contoh perekaman ringan dengan cron: jalankan vmstat 60 1440 >> /var/log/vmstat-harian.log sekali sehari. Perintah itu mencatat satu baris setiap 60 detik selama 24 jam. Hasilnya bisa kamu lampirkan saat membuka tiket.
Pilihan jalan keluar
Langkah pertama adalah membuka tiket ke penyedia, menyertakan log steal time atau iowait beserta jam kejadian. Banyak penyedia bisa memindahkan VPS ke host lain yang lebih longgar, atau menindak tamu yang memakai sumber daya melewati batas wajar.
Kalau masalah terus berulang, pertimbangkan paket dengan alokasi CPU khusus (sering disebut dedicated vCPU atau CPU dedicated), yang menjamin inti tertentu hanya dipakai oleh VPS-mu. Harganya lebih tinggi, tetapi performanya jauh lebih bisa diprediksi. Untuk beban yang sangat sensitif, misalnya database transaksi atau server game, dedicated server menghilangkan tetangga sama sekali.
Di sisi aplikasi, kamu juga bisa membuat VPS lebih tahan gangguan: pasang cache halaman dan objek, kurangi pekerjaan berat di jam ramai (misalnya pindahkan backup ke dini hari), dan pastikan tidak ada proses liar yang ikut menghabiskan jatah CPU.
Ringkasnya
VPS murah tidak otomatis lambat, tetapi berbagi host berarti berbagi risiko. Steal time di top atau vmstat dan waktu tunggu disk di iostat adalah cara paling langsung untuk memastikan apakah lambatnya berasal dari tetangga. Kumpulkan datanya, bicarakan dengan penyedia, dan bila perlu naik ke paket dengan CPU khusus agar performa tidak lagi bergantung pada kebiasaan penghuni lain.


