Seminar Nasional Inovasi dan Teknologi Informasi 2014 (SNITI) Parbaba-Samosir, 10 - 11 Oktober 2014
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:
[email protected] 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 Unix). Lisensi open source memungkinkan hal 1
Seminar Nasional Inovasi dan Teknologi Informasi 2014 (SNITI) Parbaba-Samosir, 10 - 11 Oktober 2014
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).
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. Elemenelemen 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
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 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 hal 2
Seminar Nasional Inovasi dan Teknologi Informasi 2014 (SNITI) Parbaba-Samosir, 10 - 11 Oktober 2014
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).
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
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
Processor
Intel Core2Duo @ 2.10 GHz x 2 (32 Bit)
RAM Harddisk
2 GB 320 GB
SERVER Intel® Pentium® E2140 @ 1.60 GHz x 2 (64 Bit) 4 GB 500 GB
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 masingmasing 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 hal 3
Seminar Nasional Inovasi dan Teknologi Informasi 2014 (SNITI) Parbaba-Samosir, 10 - 11 Oktober 2014
website berupa gambar, flash, serta media lainnya yang dapat memberikan beban kepada client ketika mengaksesnya.
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.
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
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 request yang masuk. Keduanya mampu untuk hal 4
Seminar Nasional Inovasi dan Teknologi Informasi 2014 (SNITI) Parbaba-Samosir, 10 - 11 Oktober 2014
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
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 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.
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. hal 5
Seminar Nasional Inovasi dan Teknologi Informasi 2014 (SNITI) Parbaba-Samosir, 10 - 11 Oktober 2014
Gambar 8d menggambarkan penggunaan memori pada slackware.
Gambar 8b. Penggunaan memori Slackware
Gambar 8c. Grafik Penggunaan memori Centos
mempunyai keterangan sebagai berikut (1) Centos merupakan distro yang mampu untuk membuka proses lebih banyak dibandingkan dengan distrodistro lainnya yang diuji. Namun 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.
Gambar 8d. Grafik Penggunaan memori Slackware Dari hasil ini, penggunaan memori pada masingmasing 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
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 child yang dibawa oleh user tertentu.
hal 6
Seminar Nasional Inovasi dan Teknologi Informasi 2014 (SNITI) Parbaba-Samosir, 10 - 11 Oktober 2014
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)
hal 7