bab 2 landasan kepustakaanrepository.ub.ac.id/3300/3/bab ii.pdf · 5 bab 2 landasan kepustakaan...

10
5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka. Kajian pustaka membahas tentang penelitian-penelitian yang telah dilakukan sebelumnya. Sedangkan, dasar teori merupakan pembahasan terhadap teori-teori yang mendasari penelitian yang diusulkan, yaitu “Perbandingan Performa Reverse Proxy Caching Nginx dan Varnish pada Web Server Apache”. 2.1 Kajian Pustaka Kajian pustaka pada penelitian ini membandingkan dan mengembangkan penelitian yang diusulkan dengan dua penelitian sebelumnya. Penelitian pertama yaitu penelitian yang dilakukan oleh (Hu, dkk., 1999) yang berjudul “Measurement, Analysis and Performance Improvement of the Apache Web server”. Penelitian ini membahas mengenai penanganan dari padatnya lalu lintas (traffic) yang harus ditangani oleh web server Apache dengan meningkatkan performa dari server tersebut. Terdapat 8 cara yang dilakukan dalam penelitian ini untuk meningkatkan performa dari web server Apache. Cara pertama yaitu menggunakan fungsi mmap, yang berfungsi untuk menghilangkan data yang sudah disalin antara file sistem cache dan user space. Ketika Apache perlu membaca file, program akan dibiarkan untuk membuka file, kemudian digunakan fungsi mmap untuk memetakan data file ke dalam user space. Hasilnya, server dapat langsung mengirim data yang telah dipetakan ke jaringan dan menghindari pembacaan sistem call sama sekali. Cara selanjutnya yaitu dengan caching file dalam ruang pengguna (user space). Melalui cara ini, web server dapat langsung mengirim data dari file yang tersimpan ke tumpukan TCP/IP dan menghindari semua file sistem calls. Cara ini membuat pembacaan data yang tersimpan di memori pengguna lebih cepat daripada yang berasal dari area mmap. Selanjutnya yaitu mempercepat logging. Untuk mempercepat logging, digunakan beberapa cara yaitu caching DNS, caching string results, dan delayed logging. Dua teknik terakhir yaitu dengan caching hasil proses URI dan menyatukan FS/cache jaringan. Hasil penelitian menunjukkan bahwa teknik-teknik tersebut cukup efektif. Mereka dapat meningkatkan throughput dari Apache sebesar 61%. Penelitian selanjutnya yaitu penelitian yang dilakukan oleh (Dély, 2014). Penelitian yang berjudul “Caching HTTP : A comparative study of reverse proxies Varnish and Nginx” ini membandingkan kinerja dari dua aplikasi reverse proxy, yaitu Varnish dan Nginx. Tujuannya, untuk mengetahui perbandingan waktu respon yang dihasilkan dari kedua reverse proxy tersebut dalam menangani permintaan. Dari hasil pengujian pertama, Apache yang menggunakan Nginx reverse proxy memiliki performa yang lebih baik dibandingkan dengan Apache yang menggunakan Varnish reverse proxy. Pada pengujian kedua, dimana beban request ditambahkan, Nginx juga masih tetap lebih unggul dibandingkan Varnish. Nginx dapat berjalan dengan stabil dan konsisten pada pengolahan konten yang berbeda-beda, sementara Varnish memiliki waktu respon yang bervariatif dan

Upload: others

Post on 14-Dec-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 2 LANDASAN KEPUSTAKAANrepository.ub.ac.id/3300/3/BAB II.pdf · 5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka

5

BAB 2 LANDASAN KEPUSTAKAAN

Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka. Kajian pustaka membahas tentang penelitian-penelitian yang telah dilakukan sebelumnya. Sedangkan, dasar teori merupakan pembahasan terhadap teori-teori yang mendasari penelitian yang diusulkan, yaitu “Perbandingan Performa Reverse Proxy Caching Nginx dan Varnish pada Web Server Apache”.

2.1 Kajian Pustaka

Kajian pustaka pada penelitian ini membandingkan dan mengembangkan penelitian yang diusulkan dengan dua penelitian sebelumnya. Penelitian pertama yaitu penelitian yang dilakukan oleh (Hu, dkk., 1999) yang berjudul “Measurement, Analysis and Performance Improvement of the Apache Web server”. Penelitian ini membahas mengenai penanganan dari padatnya lalu lintas (traffic) yang harus ditangani oleh web server Apache dengan meningkatkan performa dari server tersebut. Terdapat 8 cara yang dilakukan dalam penelitian ini untuk meningkatkan performa dari web server Apache. Cara pertama yaitu menggunakan fungsi mmap, yang berfungsi untuk menghilangkan data yang sudah disalin antara file sistem cache dan user space. Ketika Apache perlu membaca file, program akan dibiarkan untuk membuka file, kemudian digunakan fungsi mmap untuk memetakan data file ke dalam user space. Hasilnya, server dapat langsung mengirim data yang telah dipetakan ke jaringan dan menghindari pembacaan sistem call sama sekali. Cara selanjutnya yaitu dengan caching file dalam ruang pengguna (user space). Melalui cara ini, web server dapat langsung mengirim data dari file yang tersimpan ke tumpukan TCP/IP dan menghindari semua file sistem calls. Cara ini membuat pembacaan data yang tersimpan di memori pengguna lebih cepat daripada yang berasal dari area mmap. Selanjutnya yaitu mempercepat logging. Untuk mempercepat logging, digunakan beberapa cara yaitu caching DNS, caching string results, dan delayed logging. Dua teknik terakhir yaitu dengan caching hasil proses URI dan menyatukan FS/cache jaringan. Hasil penelitian menunjukkan bahwa teknik-teknik tersebut cukup efektif. Mereka dapat meningkatkan throughput dari Apache sebesar 61%.

Penelitian selanjutnya yaitu penelitian yang dilakukan oleh (Dély, 2014). Penelitian yang berjudul “Caching HTTP : A comparative study of reverse proxies Varnish and Nginx” ini membandingkan kinerja dari dua aplikasi reverse proxy, yaitu Varnish dan Nginx. Tujuannya, untuk mengetahui perbandingan waktu respon yang dihasilkan dari kedua reverse proxy tersebut dalam menangani permintaan. Dari hasil pengujian pertama, Apache yang menggunakan Nginx reverse proxy memiliki performa yang lebih baik dibandingkan dengan Apache yang menggunakan Varnish reverse proxy. Pada pengujian kedua, dimana beban request ditambahkan, Nginx juga masih tetap lebih unggul dibandingkan Varnish. Nginx dapat berjalan dengan stabil dan konsisten pada pengolahan konten yang berbeda-beda, sementara Varnish memiliki waktu respon yang bervariatif dan

Page 2: BAB 2 LANDASAN KEPUSTAKAANrepository.ub.ac.id/3300/3/BAB II.pdf · 5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka

6

berbeda secara signifikan dari satu waktu respon ke waktu respon lainnya. Analisa perbandingan dari penelitian- ditunjukkan pada Tabel 2.1.

Tabel 2.1 Tinjauan Pustaka

No Judul Objek Metode Hasil

1 Measurement, Analysis and Performance Improvement of the Apache Web server

web server Apache

Teknik : a. Mmap b. Caching small

files c. Caching file

states d. Caching DNS e. Caching string

results f. Delayed

logging g. Caching URI

process result h. Unifying FS /

Network caches

Hasil penelitian menunjukkan bahwa teknik ini meningkatkan throughput Apache sebesar 61%. Hasil juga menunjukkan bahwa sistem operasi mendukung untuk mengirim data secara langsung dari file sistem cache ke jaringan TCP / IP dapat lebih meningkatkan kinerja web server.

2 Caching HTTP :

A comparative study of reverse proxies Varnish and Nginx

web server HTTP

Metode :

- Varnish - Nginx

Hasil penelitian menunjukkan bahwa Nginx memiliki performa yang lebih bagus dibandingkan dengan Varnish meskipun beban permintaan (request) ditambahkan.

Penelitian yang akan dilakukan menggabungkan dan menerapkan metode yang berbeda dari beberapa penelitian sebelumnya. Adapun reverse proxy caching yang akan dibandingkan hasilnya dalam penelitian ini yaitu Nginx dan Varnish. Penelitian ini akan berfokus pada perbandingan efisiensi sumberdaya dan kualitas layanan dari kedua reverse proxy caching tersebut. Adapun penelitian yang diusulkan berjudul “Perbandingan Performa Reverse proxy caching Nginx dan Varnish pada Web Server Apache”.

2.2 Web server

Web server merupakan entitas atau perangkat lunak pada suatu jaringan yang berfungsi untuk menyediakan objek dari suatu website kepada client. Sebuah web server terhubung ke database dan membuat query tertentu untuk membut objek

Page 3: BAB 2 LANDASAN KEPUSTAKAANrepository.ub.ac.id/3300/3/BAB II.pdf · 5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka

7

dari web yang diminta (Bakhtiyari, 2012). Secara ringkas, fungsi utama dari web server ialah sebagai tempat aplikasi web dan sebagai penerima request dari client (Warman & Zahni, 2013). Saat client membutuhkan sumberdaya dari suatu web, maka penting untuk diketahui identifier umum dari objek tersebut. Untuk melakukannya, maka perlu untuk mengetahui host mana dalam internet yang menyediakan sumberdaya (resource) tersebut (Bakhtiyari, 2012). Web server sendiri pada dasarnya menyediakan dua tipe data, yaitu statis dan dinamis (Iyengar & Challenger, 1997).

2.2.1 Cara Kerja Web server

Pada saat client melakukan sebuah permintaan (request) terhadap suatu halaman, browser akan membuat koneksi ke web server, meminta halaman tersebut, dan memberikannya kepada client. Namun, dibalik proses itu terdapat proses detail yang dikerjakan oleh web server seperti yang dijelaskan oleh (Brain, 2016). Secara visual, cara kerja web server ditunjukkan Gambar 2.1.

Gambar 2.1 Cara Kerja Web server (sumber: Brain, 2016)

Saat memproses permintaan client, web server akan memecah-mecah URL (misal: https://ub.ac.id/academic) menjadi 3 bagian. Ketiga bagian tersebut yaitu protokol (“https”), nama server (“www.ub.ac.id”), dan nama file (“academic.htm”). Yang pertama dilakukan web server adalah melakukan komunikasi antara browser yang dimiliki client dengan nama server pada URL untuk menerjemahkan nama server permintaan client. Misalkan nama server yang diminta adalah “www.ub.ac.id”, maka nama server tersebut diterjemahkan ke dalam alamat IP. Lalu, browser akan melakukan komunikasi dengan server sesuai alamat IP yang dimaksud pada port 80. Hal ini dikarenakan port 80 merupakan port milik protokol HTTP, maka kemudian proses berjalan diatas protokol HTTP (Brain, 2016).

Selanjutnya, browser akan berkomunikasi dengan protokol HTTP dengan cara mengirimkan permintaan menggunakan fungsi GET ke server. Server akan meminta file “https://ub.ac.id/academic” yang diinginkan oleh client. File tersebut akan dikirimkan oleh server dalam bentuk HTML.

Page 4: BAB 2 LANDASAN KEPUSTAKAANrepository.ub.ac.id/3300/3/BAB II.pdf · 5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka

8

2.3 Apache Web Server

Apache merupakan sebuah Web server berbasis UNIX yang dapat digunakan secara bebas. Apache sendiri merupakan penulisan ulang yang pada awalnya didasarkan pada kode dan ide – ide yang ditemukan dalam NCSA httpd 1.3 (Hu, dkk., 1999). Selain karena Apache merupakan Web server yang paling banyak digunakan, yaitu sebesar 48% dari semua domain Web di Internet, Apache juga mempunyai beberapa kelebihan lain (Apache.org, 2017). Pertama, Apache merupakan sebuah Web server yang memiliki fitur yang lengkap, kinerja tinggi, lebih unggul jika dibandingkan dengan Web server berbasis UNIX lainnya dalam hal fungsionalitas, efisiensi, dan kecepatan. Kemudian, source code Apache yang tersedia memungkinkan pengguna untuk membuat perubahan pada kode dalam rangka meningkatkan performanya (Hu, dkk., 1999).

Apache mendukung berbagai macam fitur dan banyak diimplementasikan sebagai modul yang dapat diintegrasikan dengan aplikasi lainnya untuk meningkatkan fungsionalitas inti aplikasi tersebut (Dedoimedo, 2011). Bahasa pemrograman dari sisi server pun mendukung skema autentifikasi dengan beberapa bahasa antarmuka pemrograman seperti Perl, Python, Tcl, dan PHP.

Apache merupakan sebuah program multi-processed. Ketika Apache mulai dijalankan, proses utama akan mencabang menjadi beberapa sub-proses yang bertanggung jawab dalam menangani permintaan HTTP yang masuk. Masing – masing sub-proses menangani satu atau beberapa port TCP tertentu. Ketika ada permintaan (request) HTTP yang masuk, hanya ada satu sub-proses yang mendapatkan request tersebut. Sub-proses ini kemudian mulai membaca request tersebut, memparsing URL (Uniform Resource Locator), mencari nama file sesuai dengan URL, memeriksa kondisi file, melakukan pemeriksaan keamanan, membuka file, membaca konten dari file, hingga akhirnya mengirimkan konten tersebut ke client. Sub-proses tersebut kemudian mencatat informasi yang terdapat dalam request ke file log dan melayani request selanjutnya (Hu, dkk., 1999).

2.4 Reverse Proxy Caching

Reverse proxy caching merupakan suatu perantara antara aplikasi web dengan client (Dély, 2014). Reverse proxy caching seringkali disebut juga dengan web server acceleration. Hal ini dikarenakan tujuan dari penggunaan reverse proxy caching adalah untuk mengurangi beban pada web server, baik yang menyediakan konten statis maupun dinamis (Visolve Squid Team, 2006).

Reverse proxy caching diletakkan lebih dekat kepada web server daripada client (Nanda, 2015). Cara utama yang digunakan untuk meringankan beban web server yaitu dengan menggunakan cache antara server dan internet (Visolve Squid Team, 2006). Cara kerjanya adalah dengan menyimpan konten dari aplikasi dan meneruskan aplikasi tersebut ke pengguna. Apabila pengguna membutuhnya kembali, maka konten yang disimpan pada server caching akan langsung diberikan ke pengguna tanpa meminta ulang ke web server. Hal ini untuk menghindari web

Page 5: BAB 2 LANDASAN KEPUSTAKAANrepository.ub.ac.id/3300/3/BAB II.pdf · 5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka

9

server harus memproduksi konten baru terus-menerus pada setiap permintaan (Dély, 2014)

Selain berfungsi untuk meringankan beban web server, situs yang membangun web server berdampingan dengan reverse proxy server juga akan mendapatkan beberapa keuntungan. Pertama, kapasitas server akan meningkat sehingga dapat menghindari pengeluaran untuk pembelian Web server tambahan. Kedua, situs akan dapat melayani permintaan (request) yang lebih banyak, baik untuk konten statis maupun dinamis dari web server sehingga kualitas layanan menjadi lebih baik (Visolve Squid Team, 2006; Nanda, 2015; Rao, 2012).

Gambar 2.2 Arsitektur Reverse proxy caching

Dalam memroses permintaan client, yang terjadi ketika menggunakan reverse proxy caching secara berurutan adalah sebagai berikut (Visolve Squid Team, 2006):

1. Ketika client membuat sebuah request HTTP, DNS tidak akan langsung meneruskan permintaan tersebut ke Web server, namun permintaan akan diteruskan ke mesin server reverse proxy.

2. Server reverse proxy kemudian akan memeriksa terlebih dahulu apakah konten yang diminta oleh client terdapat di dalam cache.

3. Jika konten yang diminta tidak terdapat di dalam cache, maka request tersebut akan dihubungkan ke web server dan men-download item yang diminta.

4. Reverse proxy sendiri hanya dapat menjadi server bagi konten statis atau URL yang dapat di-cache. Sedangkan, konten dinamis atau yang tidak dapat di-cache akan langsung dihubungkan ke web server

2.5 Nginx

Nginx merupakan sebuah perangkat lunak open source yang berfungsi sebagai web server. Nginx diciptakan pada tahun 2002 oleh Igor Sysoev, dan dapat berjalan pada Unix, Linux, BSD Variants, macOS, Solaris, AIX, HP-UX, dan juga pada Windows. Nginx sendiri dirancang sebagai web server yang memiliki kinerja maksimum dan berstabilitas tinggi (Aivaliotis, 2013). Nginx menggunakan arsitektur asinkron yang berbasis event-driven dalam menangani permintaan (request) (NGINX Software, 2017). Hal ini membuat server dapat beroperasi dengan kinerja yang tinggi dan lebih cepat (Fornuto, 2016).

Page 6: BAB 2 LANDASAN KEPUSTAKAANrepository.ub.ac.id/3300/3/BAB II.pdf · 5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka

10

Selain untuk web server, Nginx juga dapat digunakan untuk reverse proxy caching, load balancing, media streaming, dan lain sebagainya (NGINX Software, 2017). Tak hanya memiliki kemampuan dalam HTTP server, Nginx dapat berfungsi sebagai server proxy bagi email (IMAP, POP3, dan SMTP) serta sebagai reverse proxy dan load balancer untuk HTTP, TCP, dan server UDP (NGINX Software, 2017).

Nginx terkenal dapat menangani koneksi yang bervolume tinggi. Karenanya, Nginx umumnya digunakan sebagai reverse proxy caching dan sebagai load balancer untuk mengatur lalu lintas yang masuk dan mendistribusikannya ke server yang lebih lambat (NGINX Software, 2017). Nginx juga sering ditempatkan di antara client dan web server kedua untuk melayani sebagai terminator SSL/TLS, atau sering disebut sebagai akselerator web. Hal ini dapat mengurangi beban pada server aplikasi dan membuat penggunaan hardware lebih efektif (NGINX Software, 2017).

Nginx dapat digunakan sebagai reverse proxy caching dengan mengakhiri permintaan dari client dan membuka permintaan baru ke server upstream. Dalam perjalanannya, permintaan (request) tersebut dapat dibagi berdasarkan URI yang dimilikinya, parameter client, maupun berdasarkan hal-hal lainnya. Hal tersebut dilakukan dalam rangka untuk menanggapi permintaan dari client. Setiap bagian dari permintaan URL asli dapat diubah melalui reverse proxy caching (Aivaliotis, 2013).

Server upstream sendiri didefinisikan sebagai server yang membuat koneksi dengan Nginx dalam rangka memenuhi permintaan client. Nginx dapat dikonfigurasikan secara berbeda-beda untuk menangani berbagai bentuk dari server ini (Aivaliotis, 2013). Pada beberapa kasus, server upstream tidak dapat memenuhi permintaan client. Nginx memiliki kemampuan untuk menyampaikan pesan error kepada client. Pesan error yang diberikan oleh Nginx dapat berasal dari server upstream secara langsung, dari local disk, ataupun sebagai halaman redirect pada server yang berbeda (Aivaliotis, 2013).

2.5.1 Reverse Proxy Caching dengan Nginx

Nginx merupakan sebuah server HTTP yang handal dalam melayani file statis melakukan proxy pada request. Karena sifatnya yang asinkron, Nginx memiliki kelebihan pada penggunaan sumberdaya yang ringan. Dalam proses caching, Nginx terintegrasi dengan server HTTP, FastCGI, uwsgi, dan SCGI.

Dalam melakukan caching menggunakan Nginx, client tidak perlu menunggu web server untuk terlebih dahulu mengambil data melalui database dan kemudian merender halaman yang diminta. Namun, sebagai gantinya Nginx akan menyajikan file yang diminta dan langsung memberikannya kepada client (Czeraszkiewicz, 2015). Proses caching menggunakan Nginx secara umum digambarkan dalam Gambar 2.3.

Page 7: BAB 2 LANDASAN KEPUSTAKAANrepository.ub.ac.id/3300/3/BAB II.pdf · 5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka

11

Gambar 2.3 Proses Caching dengan Nginx

Adapun proses caching menggunakan Nginx adalah sebagai berikut (Czeraszkiewicz, 2015):

1. Client melakukan request HTTP yang terbagi ke dalam tiga bagian, yaitu request, header, dan body. Pada saat request tersebut diterima oleh Nginx, Nginx akan membuat sebuah kunci hash dan disimpan ke dalam memori.

2. Nginx akan melakukan pemeriksaan terhadap kunci hash ke dalam memori. Dilakukan pengecekan apakah kunci hash yang dihasilkan terdapat dalam memori.

3. Apabila kunci hash yang dihasilkan sebelumnya ada dalam memori, maka Nginx akan melayani request dengan mengambil file cache dari file sistem yang terkait dengan kunci hash tersebut.

4. File cache dari memori Nginx akan langsung diberikan kepada client tanpa perlu melibatkan web server.

5. Jika kunci hash yang dihasilkan tidak ada dalam memori, maka request akan diteruskan ke web server.

6. Web server akan menanggapi permintaan client dan hasilnya akan disimpan ke dalam sistem file sistem.

7. Tanggapan dari web server akan diteruskan ke client.

Page 8: BAB 2 LANDASAN KEPUSTAKAANrepository.ub.ac.id/3300/3/BAB II.pdf · 5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka

12

2.6 Varnish

Varnish merupakan sebuah perangkat lunak tidak berbayar yang memiliki lisensi FreeBSD, dimana tidak ada pembatasan – pembatasan tertentu dalam penggunaan kodenya (Bakhtiyari, 2012; Velázquez, et al., 2016). Varnish sendiri merupakan sebuah reverse proxy HTTP yang juga biasa disebut sebagai akselerator HTTP atau akselerator web. Varnish menyimpan file cache atau fragmen dari file ke dalam memori yang digunakan untuk mengurangi waktu respon (response time) dan konsumsi bandwidth pada jaringan di masa depan (Velázquez, et al., 2016). Fitur utama yang diunggulkan oleh Varnish yaitu performa dan fleksibilitas yang dimilikinya (Bakhtiyari, 2012). Fleksibilitas dari Varnish dikarenakan VCL (Varnish Configuration Language) yang dimilikinya dapat dikonfigurasi dan ditulis ulang oleh pengguna (Velázquez, et al., 2016).

2.6.1 Reverse Proxy Caching dengan Varnish

Reverse proxy caching pada Varnish bekerja dengan cara memberikan sumberdaya yang diminta oleh client. Jika sebuah permintaan datang kepada Varnish, maka server akan mencoba melayani permintaan tersebut dengan memberikan sumberdaya yang dibutuhkan langsung dari cache. Jika cache tidak memiliki sumberdaya tersebut, maka Varnish server akan merespon permintaan cache. Jika Varnish tidak dapat memberikan jawaban atas permintaan oleh cache, maka permintaan tersebut akan diteruskan kepada backend. Kemudian setelah dari backend, Varnish mengambil jawaban atas permintaan tersebut yang kemudian akan diberikan kepada cache. Oleh cache, permintaan tersebut dikirimkan kepada client sesuai dengan yang diminta (Varnish, 2014). Cara kerja reverse proxy caching Varnish ditunjukkan oleh Gambar 2.4.

Gambar 2.4 Cara Kerja Reverse proxy caching Varnish

Page 9: BAB 2 LANDASAN KEPUSTAKAANrepository.ub.ac.id/3300/3/BAB II.pdf · 5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka

13

2.7 Virtual Machine

Mesin virtual, atau biasa disebut dengan virtual machine (VM) adalah sebuah mesin yang mempunyai dasar logika yang menggunakan pendekatan lapisan-lapisan (layers) dari sistem komputer. VM juga merupakan emulasi sistem komputer yang didasarkan pada arsitektur komputer dan memiliki fungsionalitas seperti komputer fisik (Wikipedia, 2017).

Dasar logika dari konsep dasar VM hampir mirip dengan pendekatan berlapis dari sistem komputer. Dalam konsep layers, perangkat keras (hardware) berada pada lapisan terendah, kemudian disusul dengan kernel dan kemudian sistem program pada lapisan paling atas. Konsep dari VM hanya memberikan sedikit tambahan berupa antarmuka (nterfaces) yang menghubungkan perangkat keras dengan kernel untuk tiap-tiap proses. Antarmuka yang disediakan oleh VM bersifat identik untuk perangkat keras yang ada. Sistem operasi dapat membuat ilusi untuk beberapa proses, masing-masing mengeksekusi processor masing-masing untuk memori virtual masing-masing (Purnomo, 2009). Konsep dasar virtual machine ditunjukkan pada Gambar 2.4.

Gambar 2.5 Konsep Dasar Virtual Machine Sumber : (Purnomo, 2009)

Virtual machine yang digunakan pada penelitian ini adalah VirtualBox. VirtualBox merupakan sebuah aplikasi open source tidak berbayar yang dapat dijalankan pada platform yang berbeda untuk membuat, memanajemen, dan menjalankan virtual machine (Roy, 2006). VirtualBox cocok digunakan untuk keperluan enterprise maupun bukan. VirtualBox telah berjalan pada berbagai macam host platform, diantaranya yaitu Windows, Linux, Macintosh dan Solaris (Oracle, 2017).

Processes

Kernel

Hardware

Processes

Kernel

VM1

Processes

Kernel

VM2

Processes

Kernel

VM3

Virtual Machine Implementation

Hardware

Programming interface

Page 10: BAB 2 LANDASAN KEPUSTAKAANrepository.ub.ac.id/3300/3/BAB II.pdf · 5 BAB 2 LANDASAN KEPUSTAKAAN Landasan kepustakaan berisi uraian dan pembahasan mengenai dasar teori dan kajian pustaka

14

2.8 Evaluasi Web Server

Evaluasi web server bertujuan untuk mengevaluasi kinerja dari web server. Evaluasi pada web server dilakukan menggunakan stress tool. Evaluasi pada web server biasanya dilakukan dengan mengsimulasikan sejumlah pengguna (users) dan mengirimkan sejumlah request ke server target. Hasil dari evaluasi berupa statistik yang menunjukkan performa ataupun fungsionalitas dari server yang diuji dalam bentuk table, grafik, dan sebagainya (Tutorials Point, 2015). Evaluasi dilakukan untuk mensimulasikan berbagai pola beban untuk web server. Dengan terus meningkatkan beban kepada web server, dapat diketahui berapa banyak beban yang dapat ditangani oleh server yang dipilih dalam penelitian.

Evaluasi dalam penelitian ini dilakukan menggunakan Webserver Stress Tool. Webserver Stress Tool adalah aplikasi pengujian HTTP pada client maupun server yang dirancang untuk menentukan masalah kinerja penting di situs web maupun server web. Webserver Stress Tool dapat mengsimulasikan sampai dengan 10.000 pengguna untuk mengakses sebuah web menggunakan HTTP/HTTPS, serta lebih dari 1 juta request halaman setiap jamnya (Webserver Stress Tool, 2017). Setiap user disimulasikan oleh thread yang terpisah dengan masing-masing informasi session sendiiri, dan menjelajahi URL secara independen, atau terpisah dari user lainnya. Konsep tersebut sama seperti penggunaan web di dunia nyata. URL juga dapat diberi parameter untuk setiap pengguna, dan urutan dari URL dapat bervariasi (Webserver Stress Tool, 2017).