Kenapa kecepatan IO tinggi pada VPS bisa menipu

Selama ini saya ternyata memiliki kesalahpahaman dalam hal nilai IO (Input/Output) pada hasil benchmark. Semestinya kecepatan IO ini akan mencerminkan seberapa cepat kita menulis dan membaca data pada media penyimpanan, bisa Harddisk atau SSD yang digunakan. Nah… bolak balik saya melakukan benchmark dan percaya begitu saja akan hasilnya, atau lebih tepatnya saya tidak tahu kalau di VPS dengan virtualisasi OpenVZ ada trik yang berpengaruh terhadap IO Speednya.

Seperti yang kita tahu kalau secara kecepatan IO tentu SSD lah yang akan menang jauh daripada HDD, tapi kapasitasnya yang lebih kecil. Kadang ada provider VPS yang mengambil jalan tengah: SSD cached, jadi kapasitas HDD tapi dicache pada SSD. Saran saya sih sebisa mungkin ambil yang SSD atau minimal SSD cached karena akan berpengaruh pada performa Virtual Private Server anda.

Sampai kemarin saya masih menganut:

  1. Kalau ini HDD dan speednya dibawah 20 MB/s berarti dibawah rata – rata, kalau normal seharusnya di sekitar 50 MB/s.
  2. Sedangkan kalau ini SSD maka bisa diharapkan akan berada diatas 100MB/s, kalau sampai di bawah sangat suram ceritanya. Normalnya kalau SSD di angka sekitar 150MB/s bahkan bisa jauh lebih besar.
  3. Akhirnya kalau ini SSD cached maka saya ambil nilai tengahnya, hasil sekitar 100MB/s sudah cukup bagus. Nilainya diatas HDD tapi tidak bisa setara dengan murni SSD.

Catatan: Semua nilai ini berdasarkan pengalaman dan pengamatan saya saja, juga dari baca – baca di internet. Jangan dianggap sebagai aturan atau fakta yang harus ditaati. Cuma share bagaimana saya menilai performa IO dari suatu VPS. Misal ada kesalahan silahkan dikoreksi. 🙂

Kembali ke fokus pembicaraan, ternyata semua nilai diatas kalau di OpenVZ bisa dianggap tidak valid. Menggunakan HDD pun bisa sampai ratusan MB IO speednya. Disini saya kemarin agak terkejut dan mencari referensinya, ternyata sulit juga. 🙁

Jadi yang sebenarnya terjadi adalah pada OpenVZ terdapat fitur bernama ploop dan fungsinya agar saat manipulasi filesystem dalam sebuah VPS tidak menghambat proses lainnya. Jadi ukuran HDD/SSD akan diatur dalam virtual disk bukannya direktori dan ini mempermudah pengaturannya. Singkatnya optimalisasi storage dari sisi provider, kita sebagai pengguna tidak bisa apa – apa disini.

Apa efeknya kalau ploop ini aktif?

  1. Pertama, tampaknya ini hal yang pasti karena memang sudah menjadi default OpenVZ disebabkan banyak manfaatnya. Bisa anda baca dari sumbernya: Why Ploop?
  2. Kedua, dari riset saya seharian ternyata ploop ini memiliki write-cache, jadi kalau banyak data/file yang akan dituliskan akan diletakkan dulu dalam RAM baru kemudian saat ada kesempatan memanfaatkan idlenya sistem akan dituliskan. Yang akan disimpan dulu pada HDD/SSD adalah meta-data dari filenya dan isinya menyusul.
  3. Ketiga, adalah isi dari file yang dijadikan benchmark. Karena script – script benchmark menggunakan dd atau ioping untuk membuat file palsu dan mengukurnya ternyata hal ini bisa dioptimalkan oleh ploop karena isinya adalah kosong atau tidak ada artinya. Otomatis tampaknya.

Beberapa hal diatas adalah yang saya tangkap dari fitur ploop di OpenVZ, karena optimalisasinya bisa meningkatkan kecepatan IO menjadi sangat lebih baik dan ini bisa menipu kalau tidak hati – hati.

Ada satu tips untuk mendapatkan nilai IO yang lebih akurat, yaitu buatlah sebuah file berukuran 1GB dan silahkan dicopy. Metode ini akan mencerminkan kemampuan kerja nyatanya.

Oh ya, yang saya tuliskan juga untuk dokumentasi pribadi. Kalau ada kesalahan atau koreksi atau pertanyaan jangan sungkan diajukan dalam komentar. Terutama untuk hal teknisnya mungkin pemahaman saya belum akurat. Saya selalu menerima ilmu baru. 😀

Semoga bermanfaat. 🙂

2 pemikiran pada “Kenapa kecepatan IO tinggi pada VPS bisa menipu

    • Yup, lebih bagus kalau pakai file yang nyata. Kalau tes pakai dd atau semacamnya itu yang dibuat file berukuran besar tapi isinya kosong.

Tinggalkan komentar