Pengujian Server Dengan UnixBench Pada VPS dan Dedicated

Saat kita membeli sebuah vps ataupun dedicated server, biasanya kita akan melakukan beberapa test terlebih dahulu. Hal terpenting dalam pengujian sebuah server adalah kestabilan dan performa dari server tersebut. Pengujian performa server biasanya dilakukan menggunakan aplikasi benchmark sintetis.

pengujian performa server dengan unixbench (ilustrasi)
Ilustrasi Artikel: Pengujian performa server VPS dan Dedicated.

Pada server dengan sistem operasi berbasis linux, UnixBench biasa digunakan dalam pengujian performa server, terutama untuk melihat seberapa tinggi performa CPU-nya. Selanjutnya Anda bisa membandingkan dengan hasil pengujian yang dilakukan oleh orang lain. Untuk spesifikasi CPU yang sama, biasanya perbedaan score tidak akan terpaut jauh satu sama lainnya.

Apabila setelah pengujian performa server didapatkan score UnixBench yang berbeda jauh, mungkin ada beberapa kesalahan dalam konfigurasi hardwarenya. Anda bisa mengajukan komplain kepada provider tempat Anda menyewa server tersebut. Agar mendapatkan solusi untuk menangani permasalahan tersebut. Score UnixBench bisa digunakan sebagai salah satu dasar untuk memilih server yang sesuai dengan kebutuhan Anda.

Pengujian Performa Server Menggunakan Unixbench

Unixbench dapat diinstall pada semua distro Linux. Disini saya akan memberikan tutorial instalasi UnixBench pada distro Ubuntu ataupun Debian.

root@jktpanel:~# apt-get install build-essential libx11-dev libgl1-mesa-dev libxext-dev
wget https://github.com/kdlucas/byte-unixbench/archive/v5.1.3.tar.gz
tar xvf v5.1.3.tar.gz 
cd byte-unixbench-5.1.3/UnixBench
./Run

Sedangkan pada sistem operasi Centos, Fedora dan distro turunannya, Anda bisa menginstallnya dengan perintah berikut:

root@devsvr:~# yum install gcc gcc-c++ make libXext-devel perl-Time-HiRes
wget https://github.com/kdlucas/byte-unixbench/archive/v5.1.3.tar.gz
tar xvf v5.1.3.tar.gz 
cd byte-unixbench-5.1.3/UnixBench
./Run

Selanjutnya Anda tinggal menunggu saja sampai proses benchmark selesai.

Dhrystone 2 using register variables       28040267.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3662.5 MWIPS (9.7 s, 7 samples)
Execl Throughput                               3973.4 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        932412.8 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          282436.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1862357.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1993341.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 321247.8 lps   (10.0 s, 7 samples)
Process Creation                              12177.2 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   7172.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    931.5 lpm   (60.0 s, 2 samples)
System Call Overhead                        3783062.4 lps   (10.0 s, 7 samples)
 
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   28040267.0   2402.8
Double-Precision Whetstone                       55.0       3662.5    665.9
Execl Throughput                                 43.0       3973.4    924.0
File Copy 1024 bufsize 2000 maxblocks          3960.0     932412.8   2354.6
File Copy 256 bufsize 500 maxblocks            1655.0     282436.0   1706.6
File Copy 4096 bufsize 8000 maxblocks          5800.0    1862357.0   3211.0
Pipe Throughput                               12440.0    1993341.4   1602.4
Pipe-based Context Switching                   4000.0     321247.8    803.1
Process Creation                                126.0      12177.2    966.4
Shell Scripts (1 concurrent)                     42.4       7172.3   1691.6
Shell Scripts (8 concurrent)                      6.0        931.5   1552.5
System Call Overhead                          15000.0    3783062.4   2522.0
                                                                   ========
System Benchmarks Index Score                                        1524.1

VPS ini hanya diberikan alokasi 1 core cpu saja. Hasil pengujian dengan UnixBench didapatkan score sebesar 1524.

Pengujian Performa Server Menggunakan Perintah DD

Perintah dd di linux dapat digunakan untuk pengujian sederhana untuk mengetahui performa i/o disk storage. Perintahnya adalah sebagai berikut:

root@simple-aja:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync

Hasil yang ditampilkan seperti gambar dibawah ini.

pengujian performa server - sequential write menggunakan dd
Hasil pengujian perfroma sequential write menggunakan perintah dd

Kebanyakan orang menggunakan hasil dd test sebagai salah satu patokan bahwa server tersebut memiliki disk yang cepat. Padahal perintah tersebut hanya dapat menggambarkan seberapa cepat proses penulisan data ke disk secara sequential dan single-threaded. Sebuah pengujian yang kurang relevan apabila server tersebut ditujukan sebagai web hosting.

Karena sebuah web server termasuk juga dengan databasenya akan menuliskan dan membaca data secara acak. Sedangkan perintah ini tidak menguji seberapa cepat disk membaca data.

Pengujian Performa Server Menggunakan FIO dan Ioping

FIO dapat digunakan untuk menguji performa random read/write pada sebuah disk. Pada ubuntu, Anda dapat menginstall fio dengan perintah berikut:

root@jktpanel:~# apt-get install fio
root@jktpanel:~# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test 
--filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75

pengujian performa server - random read/write menggunakan fio
Hasil pengujian perfroma random read/write menggunakan FIO

Ioping digunakan untuk menguji latency dari sebuah disk pada vps ataupun dedicated server. Di ubuntu, Anda dapat menginstal ioping menggunakan perintah berikut:

root@jktpanel:~# apt-get install ioping
root@jktpanel:~# ioping -c 10 /home

pengujian performa server - disk latency menggunakan ioping
Hasil pengujian perfroma random read/write menggunakan FIO

Diatas adalah beberapa pengujian performa server dari sebuah vps dengan virtualisasi KVM. Node menggunakan storage bertipe SSD dengan konfigurasi RAID 10.

Membandingkan Hasil Pengujian Performa Server

Performa sebuah vps dapat berbeda dari waktu ke waktu. Banyak hal yang dapat mempengaruhi performa dari sebuah vps, diantaranya adalah populasi vps dan juga aktivitas dari tiap vps dalam sebuah node. Oleh karena itu performa keseluruhan dari sebuah vps tidak hanya bisa dilihat dari spesifikasinya saja. Sedangkan performa dedicated server dari waktu ke waktu pada umumnya akan relatif sama.

Disini saya akan mencoba menguji beberapa vps lainnya dan sebuah dedicated server dari provider yang berbeda. Perbandingan didasarkanantara performa yang didapatkan dengan harga sewa bulanannya.

Digital Ocean 8 GB Plan

VPS dari digital ocean ini menggunakan virtualisasi KVM dengan spesifikasi 4 Core CPU dengan RAM sebesar 8 GB, seharga $80 USD per bulannya. Hasil pengujian adalah sebagai berikut:

UnixBench Index Score 2316.4
I/O Pings 10 requests completed in 9004.5 ms, 3444 iops, 13.5 mb/s
DD Test 350 MB/s

Linode 8 GB Plan

VPS dari Linode ini menggunakan virtualisasi Xen dengan spesifikasi 6 Core CPU dengan RAM sebesar 8 GB, seharga $80 USD per bulannya. Hasil pengujian adalah sebagai berikut:

UnixBench Index Score 2497.1
10 requests completed in 9003.9 ms, 5155 iops, 20.1 mb/s
DD Test 630 MB/s

Dedicated Server Dell PowerEdge R210

Selanjutnya saya melakukan pengujian pada sebuah dedicated server seharga $49 per bulannya. Spesifikasinya hardwarenya adalah sebagai berikut:

Dell PowerEdge R210 w/ IPMI
Xeon CPU L3426 @ 1.87GHz (4 core, 8 threads)
2 x 8GB RAM Dual Channel DDR3-667 @9-9-9-24
2 x 1TB HDD Hitachi Ultrastar A7K2000 (RAID1 mode)
Dell PERC H200 Integrated 6Gbps SAS
LSI Logic SAS2008 PCI-Express Fusion-MPT SAS-2
2 x Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet

Memang boleh dibilang modelnya agak lawas, karena ini merupakan dedicated server kelas low-end. Hasil pengujian yang didapat adalah sebagai berikut:

UnixBench Index Score 3236
10 requests completed in 9004.3 ms, 3492 iops, 13.6 mb/s
DD Test 108 MB/s

Tiap server diuji menggunakan fresh install OS Ubuntu 12.04 64-bit dan diulang sebanyak 3 kali dengan selang waktu 6 jam. Score hasil pengujian performa server diambil menurut hasil rata-rata.

Apabila kita melihat hasil pengujian diatas, maka dapat disimpulkan bahwa:

  • Performa CPU pada dedicated server 29% lebih tinggi dari vps Linode, dan 39% lebih tinggi dari vps Digital Ocean.
  • Hasil iops tertinggi diperoleh dari vps Linode, dan hampir berimbang antara vps Digital Ocean dengan dedicated server.
  • Sequential i/o tertinggi diperoleh dari vps Linode, 80% lebih tinggi dari vps Digital Ocean dan 480% lebih tinggi dari dedicated server.

Dedicated server diatas hanya unggul pada performa cpu yang didapat. Sedangkan vps memiliki performa disk i/o yang lebih unggul. Sebab pada umumnya node pada vps menggunakan puluhan keping ssd dengan konfigurasi RAID 10. Sedangkan dedicated server diatas hanya menggunakan 2 keping hdd, dimana hanya bisa memilih RAID 1 atau RAID 0.

Dari segi biaya sewa yang dikeluarkan per-bulannya, tentu saja dedicated server diatas tadi 40% lebih murah ketimbang biaya sewa VPS baik dari Digital Ocean maupun Linode. Mana yang lebih baik apabila dilihat berdasarkan pertimbangan antara harga dan performa? Relatif! Sebab hal tersebut bergantung pada kebutuhan dan jenis dari aplikasi atau layanan yang akan dibangun pada sebuah server.

Berdasarkan pengalaman saya selama ini, vps dengan SSD dari Linode ataupun Digital Ocean sangat cocok untuk menjalankan aplikasi yang membutuhkan performa I/O yang tinggi. Misalnya untuk menjalankan aplikasi dengan ukuran database yang sangat besar, dimana proses lookup akan lebih cepat jika server menggunakan SSD.

Namun apabila aplikasi yang akan dijalankan lebih banyak menggunakan resource cpu, maka dedicated server menjadi pilihan yang tepat, sebab performa cpu pada dedicated server akan relatif sama dari waktu ke waktu. Aplikasi yang lebih banyak menggunakan resource cpu diantaranya adalah aplikasi berbasis php, video encoding, currency mining, gmod sandbox, dan lainnya.

Sebagai informasi tambahan mengenai penggunaan resource pada VPS, kamu tidak perlu terlalu khawatir apabila setelah aplikasi yang kamu jalankan ternyata membuat server menjadi overload. Baik pada Linode dan Digital Ocean umumnya masih mengijinkan penggunaan resource cpu yang tinggi secara kontinyu selama 1-3 hari tanpa mendapatkan peringatan atau suspensi. Jadi kamu bisa dengan segera mengetahui bahwa aplikasi yang kamu jalankan membutuhkan resource yang lebih besar, sehingga kamu bisa mempersiapkan server lainnya yang lebih powerful.

Dan apabila memang belum yakin membutuhkan dedicated server, kamu bisa menggunakan layanan virtual server dari AWS, Azure, atau AbusiveCore yang memang mengijinkan penggunaan utilitas cpu secara kontinyu.

 

Leave a Reply