ANALISIS DAN PERBANDINGAN DISTRO LINUX UNTUK
SERVER WEB
Iwan Binanto1, Fidelis Adi Wicaksono2
Program Studi Teknik Informatika, Universitas Sanata Dharma Kampus 3, Paingan, Maguwoharjo, Sleman, Yogyakarta
HP: 0812.296.0601 E-mail: iwan@usd.ac.id ABSTRACT
Many web servers are built on the Linux operating system, but there are many types of distros. Each distro has its own default web server’s configuration, consequently the performance of the distros are different from each other. This research will be testing several Linux distros as a web server by default configuration using significantly increased request load . Ultimately, this research will identify those Linux distros that are capable of providing service to these requests properly. The results of this research indicates that all distros can handle the requests properly while the best distro is Slackware and the worst is OpenSuse.
Keywords: operating system, linux distro, linux, web server, analysis and comparison
1. PENDAHULUAN
Website merupakan salah satu fasilitas di
internet yang berupa sekelompok halaman web (web
page), gambar, video, dan data digital yang disediakan di satu atau beberapa server yang disebut dengan web server.
Web server merupakan sebuah aplikasi yang
memiliki tanggung jawab untuk menerima request HTTP dari sisi client yang dikenal dengan web
browser dan melayani mereka dengan menyediakan
response HTTP berupa konten data berupa halaman
web.
Sebuah server memberikan layanan-layanan yang dibutuhkan oleh client. Untuk memberikan response yang baik dalam memenuhi request dari
client maka diperlukan server yang didukung
dengan processor yang bersifat scalable, RAM yang besar dan sistem operasi yang khusus. Sistem operasi ini merupakan sistem operasi komputer yang difungsikan sebagai server dalam jaringan komputer yang memiliki berbagai layanan yang ditujukan untuk melayani pengguna atau client. Berdasarkan hasil survei yang dilakukan oleh W3Techs – World
Wide Web Technology Survey, sistem operasi yang
biasa digunakan untuk server adalah Linux (W3Tech, 2013). Linux merupakan sistem operasi yang bersifat open-source. Sifat ini yang mengakibatkan munculnya banyak distribusi Linux dan sering membingungkan pengguna dalam memilih yang paling tepat untuk dirinya.
Situs-situs yang menangani banyak pengunjung/client, kualitas layanan suatu web server tergantung pada dua parameter yaitu kecepatan
transfer dalam jaringan komputer dan waktu respon
server. Kecepatan transfer secara garis besar
berkaitan dengan bandwidth dan jalur yang digunakan ketika mengakses web server tersebut, sedangkan waktu respon server tergantung pada sumber daya yang digunakan. Terkait dengan sumber daya yang digunakan, request yang semakin
banyak secara signifikan dari client akan mempengaruhi kinerja server (Engelschall, 1998).
Peneliti belum menemukan penelitian tentang perbandingan distro-distro linux sebagai sistem operasi webserver. Oleh karena itu pada penelitian ini akan dilakukan perbandingan untuk mencari distro linux sebagai sistem operasi web server yang handal dengan konfigurasi standard, ketika sumber daya yang tersedia digunakan untuk melayani
request dari client yang meningkat secara signifikan.
Penelitian ini diharapkan dapat membantu pengguna dalam pemilihan distro Linux sebagai sistem operasi webserver.
2. METODE PENELITIAN
Metode penelitian yang dilakukan adalah ujicoba langsung dengan perangkat, dengan tahapan (1) Perancangan topologi jaringan skala kecil antara
client dan server, (2) Menentukan spesifikasi
hardware yang akan digunakan, (3) Pemilihan distro
linux khusus untuk server yang akan digunakan, (4) Memasang layanan web pada masing-masing distro linux, (5) Instalasi aplikasi WebStress Tool pada sisi
client, dan (6) menjalankan aplikasi Webstrees Tool
pada saat pengujian dengan meningkatkan jumlah
request ke server. Analisa akan dilakukan pada data
yang diperoleh berdasarkan kajian pustaka.
3. DASAR TEORI
Sistem operasi merupakan sebuah program untuk mengatur hardware sebuah komputer. Sistem operasi muncul dengan alasan sebagai cara agar penghitungan (computing) lebih berdaya guna. Tujuan dasar dari sistem komputer adalah mengeksekusi program dan memecahkan permasalahan user lebih mudah (Silberschantz, 2005). Ada banyak system operasi, salah satunya adalah GNU/Linuxyang merupakan perangkat lunak
open source di bawah lisensi GNU (GNU’s Not
GNU/Linux dikembangkan dengan bebas sehingga muncul banyak distro.
GNU/Linux merupakan turunan dari Unix yang dapat dijalankan di berbagai macam platform perangkat keras baik untuk kepentingan desktop atau server. Menurut pengamatan W3Techs – World
Wide Web Technology Survey, sistem operasi pada
server yang sering digunakan adalah berbasis
Unix/Linux karena Unix/Linux stabil, tangguh, dan bersifat open source. Beberapa sistem operasi yang biasa digunakan pada server antara lain centos, debian, ubuntu, fedora, slackware, dan open suse. Gambar 1 merupakan distro linux yang sering digunakan untuk sebuah server berdasarkan data yang diambil dari W3Techs – World Wide Web
Technology Survey awal tahun 2013 (W3Techs,
2013).
Web server adalah aplikasi perangkat lunak yang
mendengarkan permintaan dari client untuk mendapatkan informasi berupa halaman web dengan menggunakan protokol HTTP. Protokol ini yang dipergunakan untuk mentransfer dokumen yang umumnya berbentuk HTML (Aulds, 2002).
Gambar 1. Prosentase Penggunaan Distro Linux Menurut W3Techs
Hypertext Transfer Protocol (HTTP) adalah
suatu protokol untuk menentukan aturan yang harus diikuti oleh web browser dalam meminta atau mengambil suatu dokumen yang berasal dari sebuah
server tertentu. Web browser biasanya memulai
permintaan dengan membuat hubungan TCP/IP ke port 80 (port default dari HTTP).
HTTP digunakan untuk mentransfer dokumen dalam World Wide Web (WWW), termasuk protokol ringan, tidak berstatus dan generik yang dapat dipergunakan pada berbagai macam dokumen. Pengembang standar HTTP dilaksanakan oleh Konsorium World Wide Web (World Wide
Consortium/W3C) dan juga Internet Engineering
Task Force (IETF) yang menghasilkan publikasi
beberapa dokumen Request for Comments (RFC), antara lain RFC 1945 yang mendefinisikan tentang HTTP/1.0 dan RFC 2616 yang mendefinisikan tentang HTTP/1.1
Web Server merupakan kombinasi perangkat
keras, sistem operasi, perangkat lunak server dan
content seperti terlihat pada Gambar 2.
Elemen-elemen dalam kombinasi ini mempunyai pengaruh, baik secara langsung maupun tidak langsung terhadap performansi web server.
Prinsip kerja dari web server ada dua, yaitu (1) Menerima permintaan (request) dari client, dan (2) Mengirimkan apa yang diminta oleh client
(response). Hal ini dapat diilustrasikan seperti pada
gambar 3.
Gambar 2. Elemen web server
Gambar 3. Cara kerja web server
Beberapa contoh aplikasi web server antara lain apache, micrsosft-IIS, nginx, litespeed,dan lighttpd
web server. Apache merupakan salah satu aplikasi
web server yang banyak digunakan. Hasil
pengamatan survei W3Techs – World Wide Web
Technology Survey pada awal tahun 2013
menyatakan bahwa web server yang populer digunakan adalah Apache (W3Tech, 2013) seperti terlihat pada gambar 4.
Pada penelitian ini akan digunakan sebuah alat yang berupa perangkat lunak yang bernama Webserver Stress Tool. Alat ini akan menguji web server dalam menghadapi request dari client secara simultan. Pengujian yang dilakukan adalah
performance, load, dan stress testing. Performance,
sebuah pengujian yang digunakan untuk menemukan cara terbaik dalam mengoptimalkan dan meningkatkan lalu lintas web. Webserver Stress Tools mendukung untuk melakukan permintaan simultan pada satu URL dan mencatat rata-rata waktu untuk memproses permintaan tersebut. Load, bagaimana sebuah layanan mampu memberikan waktu yang optimal dalam memuat sebuah halaman web yang diminta oleh client/user. Di sini waktu
memuat (loading) sangat mempengaruhi tingkat kepuasan client dalam mengakses sebuah website.
Stress testing, melakukan serangan terhadap layanan
web yang ada secara berlebihan. Dilakukan dengan membuat lonjakan client/user. Tujuannya agar dapat diketahui beban maksimum yang dapat diterima oleh layanan web. Hasilnya dapat diketahui ambang batas dari layanan web tersebut dan solusi yang dapat dilakukan ketika sudah melebihi ambang batas. Keluaran yang dihasilkan bisa ditampilkan seberapa cepat dan handal sebuah layanan web dalam memberikan response kepada client dalam bentuk grafik (Paessler, 2013).
Gambar 4. Presentase Penggunaan Web Server Menurut W3Techs
Dari kriteria sudut pandang pengguna tersebut, bisa dikatakan bahwa server diharapkan mampu untuk dapat segera bereaksi ketika ada permintaan
request dari client. Perlu diketahui, bahwa user yang
melakukan permintaan request kepada client dalam jumlah yang signifikan dapat mempengaruhi kinerja dari server terutama layanan web itu sendiri.
4. PERANCANGAN DAN IMPLEMENTASI
Pengujiaan menggunakan sebuah komputer sebagai client dan sebuah komputer sebagai server.
Client dan server akan terhubung oleh sebuah
jaringan. Masing-masing komputer memiliki spesifikasi seperti pada tabel 1.
Tabel 1. Spesifikasi client dan server
SPESIFIKASI CLIENT SERVER
Processor Intel Core2Duo @ 2.10 GHz x 2 (32 Bit) Intel® Pentium® E2140 @ 1.60 GHz x 2 (64 Bit) RAM 2 GB 4 GB Harddisk 320 GB 500 GB
Alat ukur pengujian akan diinstal pada komputer
client dan pada komputer server akan dipilih
beberapa distro linux yang nantinya akan diuji kehandalannya. Pada komputer server layanan yang digunakan hanya layanan web.
Topologi jaringan yang akan digunakan dalam pengujian ini seperti pada gambar 5 menggunakan topologi Point-to-Point. Client dan Server terhubung secara langsung tanpa melalui melalui perangkat jaringan lainnya seperti router atau switch. Digunakan kabel tipe cross untuk menghubungkan
client dan server.
Pada client dan server diberi IP Address secara statik. Client memiliki IP Address 192.168.1.2 dengan subnet 255.255.255.252 sedangkan server memiliki IP Address 192.168.1.1 dengan subnet 255.255.255.252. Untuk mengetahui jaringan sudah dapat digunakan, dilakukan PING baik dari client ke
server maupun dari server ke client.
Gambar 5. Topologi Jaringan Client dan Server Pada pengujian ini akan diambil tiga hingga empat distro linux serta memiliki versi kernel yang sama, terutama pada major number dan minor
number. Distro linux yang akan digunakan pada
pengujian berasal dari hasil survei yang dilakukan oleh W3Techs pada awal tahun 2013 yaitu ubuntu, centos, open suse serta slackware sebuah distro yang berasal dari luar data survei di atas. Ketiga distro tersebut merupakan distro turunan dari masing-masing distro induk. Khusus untuk distro slackware, penulis memilih dengan tujuan untuk menjadikan pembanding distro linux yang sudah ada pada data survei W3Tech.
Server akan terdiri dari beberapa distro linux
yang sudah dipilih dan harddisk akan dipartisi dengan kapasitas 80 GB untuk setiap distro. Server akan dibuat multiboot dengan tujuan dapat mengganti penggunaan distro linux yang akan diuji. Pemartisian harddisk terlihat seperti pada gambar 6. Partisi primary ada 3, yaitu Sda1, Sda2, dan Sda3, sedangkan partisi extended ada satu, menempati Sda4 dengan partisi logical nya Sda5 dan Sda6.
Layanan yang dijalankan pada server ini hanya layanan web menggunakan apache. Semua versi apache yang digunakan adalah sama, terutama pada
major number dan minor number. Konfigurasi pada
apache yang digunakan dibuat standar (default). Kemudian dibuat sebuah website yang berbasis PHP, HTML, dan CSS dan dimasukkan ke dalam layanan web tersebut. Website yang digunakan tidak memiliki keterkaitan dengan database. Isi dari
website berupa gambar, flash, serta media lainnya yang dapat memberikan beban kepada client ketika mengaksesnya.
Gambar 6. Tabel partisi pada harddisk Skenario yang akan dilakukan dalam pengujian dibagi menjadi dua, yaitu skenario ketika RAM pada
server yang digunakan sebesar 2 GB dan 4 GB
dengan menggunakan konfigurasi standar/defaul pada konfigurasi Apache. Pada sisi client,
Webserver Stress Tool dijalankan dengan
membangkitkan user yang meningkat secara signifikan. Webserver Stress Tool yang digunakan adalah versi 7. Setiap distro linux yang dipasang pada server, akan diuji dengan skenario yang sama.
Beban yang akan digunakan dalam pengujian adalah banyaknya user yang melakukan request pada server dengan jumlah yang akan meningkat. Jumlah user dimulai dari 300 (melebihi jumlah user standar pada konfigurasi apache) dan meningkat sejumlah kelipatannya. Masing-masing user juga akan membawa request per child dengan jumlah yang sama.
Aplikasi Webserver Stress Tool memiliki tiga tipe pengujian, yaitu CLICKS, TIME, dan RAMP. Masing-masing pengujian memiliki fungsi yang berbeda-beda. Pada pengujian ini dipilih tipe CLICKS dengan pertimbangan bahwa user akan selalu melakukan kegiatan klik mouse. Jumlah Clicks Per User yang dimasukkan disesuaikan dengan banyaknya user yang disimulasikan untuk melakukan request pada server. Jadi, ketika user yang akan melakukan request sejumlah X user, maka Clicks Per User pun sejumlah X. Setelah kriteria pengujian sudah siap, maka langkah selanjutnya adalah menjalankan pengujian terhadap
server. Simulasi berjalan sesuai dengan jumlah user
yang disimulasikan dan clicks yang dibawa oleh masing-masing user. Semakin banyak jumlah user
dan clicks per user, maka waktu yang diperlukan
untuk pengujian pun bertambah.
Setelah pengujian selesai dilakukan, maka akan menghasilkan sebuah report mengenai pengujian yang sudah dilakukan. Report ini berisi waktu yang diperlukan untuk menyelesaikan sebuah request,
bandwidth yang digunakan oleh server, banyaknya
request yang dikirim ke server selama pengujian
serta banyaknya user yang menunggu untuk menyelesaikan request yang dikirimnya.
Hasil pengujian ini akan dianalisa sesuai dengan skenario pengujian yang dirancang sebelumnya. Skenario dengan menggunakan sumber
daya memori server (RAM) 2 GB dan 4 GB. Masing-masing skenario sudah diberi beban user simulasi dan clicks per user berderet dengan nilai 300, 600, 900 dan 1200. Semuanya diujicobakan pada empat distro linux yang digunakan sebagai sistem operasi pada server.
5. HASIL PENGUJIAN DAN ANALISA
Distro-distro linux yang dipasang pada server menyesuaikan penggunaan memori untuk membangkitkan proses dalam melayani permintaan
request dari client. Konfigurasi standar pada web
server apache pada masing-masing distro memiliki
kemampuan yang berbeda-beda dalam membuka banyaknya proses. Ubuntu dan OpenSuse memiliki jumlah yang sama dalam membuka proses hingga beban request maksimal (beban request 1.200). Bahkan sebelum menerima request dengan beban maksimal, yaitu pada saat beban request 900, banyaknya proses yang dibuka untuk melayani
request yang masuk hanya bisa mencapai 151.
Proses sejumlah 151 ini terjadi pada saat server menggunakan memori sebesar 2 GB dan 4 GB.
Proses maksimal yang mampu dibuka oleh ubuntu dan open suse dalam melayani request HTTP berasal dari konfigurasi standar apache itu sendiri. Sehingga memori yang digunakan untuk memberikan layanan web tersebut tidak begitu besar dan lebih hemat memori.
Gambar 7a dan 7b memberikan penggunaan memori ketika pengujian dengan beban request 900, baik Ubuntu maupun OpenSuse hanya mampu untuk membuka proses hingga 151. Artinya ketika beban
request dinaikkan menjadi 1.200 proses yang dibuka
tidak bisa melebihi jumlah proses tersebut.
Gambar 7a. Penggunaan memori OpenSuse Centos dan slackware memiliki karakteristik yang hampir sama dalam membuka proses terhadap
membangkitkan proses hingga mencapai 200. Namun ada hal yang membedakan antara slackware dan centos. Slackware mampu untuk mengatur penggunaan memori lebih baik dibandingkan dengan centos. Ketika proses yang dibuka sama-sama besar, slackware mampu untuk menjaga penggunaan memori tetap hemat.
Gambar 7b. Penggunaan memori Ubuntu
Gambar 7c. Grafik Penggunaan memori OpenSuse
Gambar 7d. Grafik Penggunaan memori Ubuntu Gambar 7c dan 7d menunjukkan grafik dari penggunaan memori open suse dan ubuntu dalam melayani beban request maksimal (beban request 1.200) menggunakan memori server 2 GB. Pada gambar 7c bisa dilihat bahwa ketika open suse melayani beban maksimal (beban request 1.200), jumlah proses yang dibuka diharapkan mampu untuk memberikan layanan terhadap request tersebut. Sehingga open suse membuka proses hingga 151 proses. Dari grafik tersebut, proses yang dibuka selalu berada di atas 140 proses dan tidak mengalami penurunan sedikitpun. Artinya open suse dapat menjaga performa server agar tetap stabil.
Ubuntu tidak jauh berbeda dalam memberikan layanan dengan beban request mencapai 1.200. Grafik penggunaan memori pada ubuntu terdapat pada gambar 7d. Pada ubuntu jumlah proses yang dibuka disesuaikan dengan beban request yang masuk untuk dilayani. Sehingga ubuntu pun memaksimalkan proses yang dibuka agar mampu melayani beban request maksimal. Pada pengujian beban request dengan memori server 2 GB sempat terjadi penurunan jumlah proses, sehingga kinerja
server kurang maksimal.
Gambar 8a dan 8b menunjukan penggunaan memori pada centos dan slackware saat melayani beban request 1.200 dengan memori server sebesar 2 GB. Perbedaan begitu jelas pada penggunaan memori pada layanan web. Centos membuka proses hingga 257 dan memori yang digunakan mencapai 1,1 GB berbanding terbalik dengan slackware yang membuka proses dengan jumlah yang hampir mendekati jumlah proses yang dibuka centos namun dengan penggunaan memori yang lebih kecil.
Gambar 8a. Penggunaan memori Centos Grafik penggunaan memori centos dan slackware terdapat pada gambar 8c dan 8d. Saat memori server yang digunakan sebesar 2 GB, centos membutuhkan memori hingga mencapai 1 GB dalam melayani request dari client. Jumlah proses yang mampu dibuka oleh centos berada pada kisaran 200 hingga 250 proses.
Slackware memiliki kemiripan dengan centos. Dalam hal memberikan layanan terhadap beban request maksimal, slackware mampu untuk membuka proses dengan jumlah yang cukup tinggi dengan tetap mempertahankan penggunaan memori.
Gambar 8d menggambarkan penggunaan memori pada slackware.
Gambar 8b. Penggunaan memori Slackware
Gambar 8c. Grafik Penggunaan memori Centos
Gambar 8d. Grafik Penggunaan memori Slackware Dari hasil ini, penggunaan memori pada masing-masing distro dipengaruhi oleh banyaknya proses yang dibuka. Pada sebuah proses terdapat thread yang dapat mengeksekusi bagian yang berlainan dari program pada waktu yang berbeda, inilah yang menyebabkan adanya waktu respon yang berbeda pada masing-masing request yang akan dilayani. Sehingga terjadi antrian request yang akan mendapatkan pelayanan dari server akibat menurunnya respon dari server itu sendiri.
Secara singkat dan menyeluruh dari hasil pengujian yang dilakukan dapat dianalisa bahwa semua distro linux yang diuji pada server mampu untuk melayani beban request yang meningkat secara signifikan. Masing-masing distro linux
mempunyai keterangan sebagai berikut (1) Centos merupakan distro yang mampu untuk membuka proses lebih banyak dibandingkan dengan distro-distro lainnya yang diuji. Namun distro-distro ini terlihat lebih banyak menggunakan memori yang ada sehingga memungkinkan server untuk hang. Untuk dapat menggunakan centos, memori yang digunakan lebih baik menggunakan 4 GB karena ketika menghadapi beban maksimal (beban request 1.200) menggunakan memori 4 GB, memori yang terpakai pada layanan web bisa berkurang hampir 50% dibandingakan dengan menggunakan memori server sebesar 2 GB, (2) Slackware bisa dijadikan alternatif jika ingin memiliki server yang dapat membuka proses seperti yang ada pada centos. Satu keunggulan yang dimiliki adalah meskipun membuka banyak proses dalam melayani request yang masuk, slackware tidak begitu banyak menggunakan memori yang ada. Bahkan memori terlihat lebih hemat apalagi saat melayani beban
request maksimal, (3) Open suse, distro linux yang
bisa mempertahankan performa server meskipun beban request mencapai beban maksimal. Konsisten pada saat membuka proses untuk melayani request yang masuk. Memori yang digunakan pada layanan web bisa lebih hemat dibandingkan dengan ubuntu yang memiliki kriteria yang hampir sama dengan open suse, (4) Ubuntu dapat menyesuaikan sumber daya memori yang ada dengan banyaknya request yang akan masuk. Tidak jauh berbeda dengan open suse, namun pada ubuntu ada satu nilai lebih pada tingkat kepopuleran. Ubuntu begitu populer untuk digunakan sebagai server.
6. KESIMPULAN
Berdasarkan hasil pengujian yang sudah dilakukan terhadap server menggunakan beban
request yang beragam dan sumber daya memori
yang berbeda maka dapat disimpulkan (1) Semua distro linux yang diuji sebagai server mampu untuk melayani request yang masuk, meskipun saat pengujian ditemukan adanya error. Error yang sering ditemukan antara lain tidak ditemukannya halaman web oleh client (404 page not found) dan tidak ada jawaban dari server terhadap request yang dikirim. (2) Respon sebuah server erat kaitannya dengan proses yang melayani kinerja dari server itu sendiri. Semakin banyak proses yang ada maka berpengaruh pula pada sumber daya memori yang tersedia. Sehingga peningkatannya linier. (3) Distro linux yang baik untuk digunakan pada server dalam keadaan konfigurasi web server apache standar/default adalah slackware, sedangkan distro yang kurang baik adalah open suse. (4) Meningkatnya jumlah proses yang dibuka disebabkan oleh peningkatan user yang melakukan
request terhadap server bukan karena request per
PUSTAKA
Aulds, C. (2002). Linux Apache Web Server
Administration Craig Hunt Linux Library. Sybex
Books.
Engelschall, R.S. (1998). Load Balancing Your Web Site : Practical Approach for Distributing HTTP
Trafic. Tersedia :
http://www.webtechniques.com/archieves/1998/0 5/engelschall/
Silberschantz, A. Galvin P.B & Gagne, G. (2005).
Operating System Concepts 7th Edition. John
Wiley & Son.
W3Techs – World Wide Web Technology Survey. Tersedia : http://www.w3techs.com (diakses Desember 2013)
Web Server Stress Tools Manual Guide. Tersedia :
http://www.paessler.com/webstress (diakses Desember 2013)