KOMPARASI DISTRIBUTED CACHE DAN CENTRALIZED
CACHE PADA WEB PROXY
TESIS
PARULIAN 157038015
PROGRAM STUDI S2 TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2019
TESIS
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika
PARULIAN 157038015
PROGRAM STUDI S2 TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2019
Telah diuji pada Tanggal : 23 Juli 2019
PANITIA PENGUJI TESIS
Ketua : Prof. Dr. Muhammad Zarlis Anggota : 1. Dr. Benny Benyamin Nasution
2. Prof. Dr. Herman Mawengkang 3. Dr. Syahril Efendi, S.Si, M.IT
v
RIWAYAT HIDUP
DATA PRIBADI
Nama Lengkap (berikut gelar) : Parulian, S.Kom, M.Kom Tempat dan Tanggal Lahir : Hutanamora, 24 April 1988
Alamat Rumah : Jl. Flamboyan Gg. Kemuning No. 8A : Tanjung Selamat - Medan
Handphone / Telepon : 0813 7066 1804
E-mail : [email protected]
Instansi Tempat Berkerja : Universitas HKBP Nommensen Medan Alamat Kantor : Jl. Sutomo No. 4A Medan
DATA PENDIDIKAN
SD : SDN 173290 Butar TAMAT: 2000
SLTP : Santa Maria Tarutung TAMAT: 2003
SLTA : SMU Negeri 1 Tarutung TAMAT: 2006
D3 : Politeknik LP3I Medan TAMAT: 2009
S1 : Institut Sains & Teknologi TD Pardede Medan TAMAT: 2012
UCAPAN TERIMA KASIH
Puji syukur penulis panjatkan kepada Tuhan Yesus Kristus atas segala berkat dan karunia-Nya yang diberikan kepada penulis sehingga dapat menyelesaikan tesis ini dengan judul “KOMPARASI DISTRIBUTED CACHE DAN CENTRALIZED CACHE PADA WEB PROXY”.
Dalam penyusunan untuk menyelesaikan tesis ini, penulis banyak mendapatkan pelajaran yang besar, baik berupa saran maupun nasehat dari berbagai pihak terutama dari dosen pembimbing serta dosen pembanding, sehingga pengerjaan tesis ini dapat diselesaikan dengan baik. Tidak lepas dari dukungan orang tua yang telah banyak memberikan banyak bantuan dan dukungan, sehingga penulis dapat sampai pada tahap penyelesaian tesis ini.
Untuk itu penulis ingin menyampaikan ucapan terima kasih yang sebesar-besarnya kepada:
1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum., selaku rektor Universitas Sumatera Utara atas kesempatan yang telah diberikan kepada penulis, sehingga bisa mengikuti dan menyelesaikan pendidikan Magister Teknik Informatika. 2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc., selaku Dekan Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara Medan. 3. Bapak Prof. Dr. Muhammad Zarlis, selaku Ketua Program Studi Pascasarjana
Teknik Informatika Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara Medan.
4. Bapak Dr. Syahril Efendi, S.Si., M.IT., selaku Sekretaris Program Studi Magister Teknik Informatika Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
5. Bapak Prof. Dr. Muhammad Zarlis, selaku Dosen Pembimbing I yang telah bersedia memberikan bimbingan serta pengarahan hingga selesainya penulisan tesis ini.
6. Bapak Dr. Benny Benyamin Nasution, selaku Dosen Pembimbing II yang telah bersedia memberikan bimbingan serta pengarahan hingga selesainya penulisan tesis ini.
vii
7. Bapak Bapak Prof. Dr. Herman Mawengkang, selaku dosen Pembanding/Penguji yang telah memberikan saran untuk perbaikan dan penyelesaian tesis ini.
8. Bapak Dr. Syahril Efendi, S.Si, M.IT, selaku dosen Pembanding/Penguji yang telah memberikan saran untuk perbaikan dan penyelesaian tesis ini.
9. Bapak dan Ibu dosen yang telah memberikan materi perkuliahan dan ilmu pengetahuan selama penulis menyelesaikan Program Studi Magister Teknik Informatika.
10. Bapak Pdt. Dr. Darwin Lumbantobing, selaku Pembina Yayasan Universitas HKBP Nommensen yang memberikan kesempatan kepada penulis untuk melanjutkan pendidikan ke jenjang Magister Teknik Informatika.
11. Bapak Dr. Ir. Nurdin Tampubolon, MM, selaku Ketua Yayasan Universitas HKBP Nommensen yang memberikan dukungan kepada penulis untuk menyelesaikan pendidikan Magister Teknik Informatika.
12. Bapak Dr. Haposan Siallagan, SH.,MH, selaku Rektor Universitas HKBP Nommensen Medan yang selalu memberikan dorongan dan motivasi kepada penulis dalam menempuh pendidikan Magister Teknik Informatika.
13. Seluruh Dosen dan Staf Universitas HKBP Nommensen Medan.
14. Seluruh Staf pada Program Studi Magister Teknik Informatika Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
15. Orang tua dan seluruh keluarga, yang selalu memberi semangat dan doa yang tiada putus dan dorongan moril maupun materil kepada penulis sehingga dapat menyelesaikan tesis ini dengan baik.
16. Istri tercinta Novi Handayani Simbolon, SE dan anak saya Harold Benedict Sirait, yang selalu memberi semangat dan doa yang tiada putus dan dorongan moril maupun materil sehingga dapat menyelesaikan tesis ini dengan baik. 17. Teman-teman seperjuangan angkatan 2015 Kom-A yang telah memberikan
dukungan dalam penyelesaian tesis ini.
18. Serta seluruh pihak yang tidak dapat penulis sebutkan satu per satu. Terimaksih atas support dari kalian semua.
Akhir kata penulis berharap semoga karya ilmiah ini dapat bermanfaat bagi semua pihak, khususnya dalam bidang pendidikan. Penulis menyadari bahwa masih ada
kekurangan dalam penulisan tesis ini, untuk itu penulis mengharapkan kritik dan saran dari pembaca demi kesempurnaan penelitian selanjutnya.
Medan, 23 Juli 2019 Penulis
Parulian 157038015
ix
ABSTRAK
Caching adalah suatu mekanisme penyimpanan object dari suatu halaman web yang
pernah diakses. Dengan adanya caching, penggunaan bandwidth akan semakin efisien dan waktu untuk mengakses suatu halaman web pun semakin cepat. Dalam caching ada 2 teknik yang dipakai, yaitu centralized cache (cache terpusat) dan distributed cache (cache terdistribusi). Tujuan penelian ini adalah membangun sebuah sistem distributed
cache yang mendukung availability, reliability, dan scalability. Sistem ini akan
mengatasi berbagai permasalahan yang ditemukan pada centralized cache, seperti kegagalan tunggal (single point of failure), tidak reliable, dan tidak scalable. Dengan didukungnya availability, sistem akan terhindar dari masalah single point of failure dengan menerapkan mekanisme failover. Untuk reliability sistem akan tetap tahan (reliable) menerima request dari user, karena beberapa proxy server (parent proxy) akan melayani request dari user. Untuk scalability, sistem dapat menambah proxy
server dengan mudah dan cepat. Untuk melakukan pembangunan sistem, pengembang
melakukan beberapa pendekatan seperti pembelajaran dasar mengenai proxy server dan teori yang terkait. Selanjutnya dilakukan analisis untuk membangun sistem yang mendukung availability, reliability, dan scalability. Kemudian tahap analisis diimplementasikan dan dilakukan pengujian terhadap sistem yang dibangun. Pengujian yang dilakukan adalah pengujian sistem centralized cache dan pengujian sistem
distributed cache. Hasil pengujian kemudian akan dibandingkan untuk melihat
perbandingan performansi antara centralized cache dan distributed cache. Kata kunci: Caching, Centralized, Distributed
COMPARATION OF DITRIBUTED CACHE AND CENTRALIZED
CACHE ON WEB PROXY
ABSTRACT
Caching is an object storage mechanism from a web page that has been accessed. With caching, bandwidth usage will be more efficient and the time to access a web page is getting faster. In caching there are 2 techniques used, namely centralized cache and distributed cache. The purpose of this study is to build a distributed cache system that supports Availability, Reliability, and Scalability. This system will overcome various problems found in the centralized cache, such as single point of failure, unreliable, and not scalable. With the availability of Availability, the system will avoid the problem of single point of failure by implementing a failover mechanism. For the Reliability system will still hold (reliable) accept requests from users, because some proxy servers (parent proxy) will serve requests from users. For Scalability, the system can add proxy servers easily and quickly. To develop the system, the developer takes several approaches such as basic learning about proxy servers and related theories. Next is an analysis to build a system that supports Availability, Reliability, and Scalability. Then the analysis phase is implemented and testing of the system is built. Tests carried out are testing centralized cache systems and testing distributed cache systems. The test results will then be compared to see the performance comparison between centralized cache and distributed cache.
xi
DAFTAR ISI
Hal
PERSETUJUAN ... i
PERNYATAAN ... ii
PERNYATAAN PERSETUJUAN PUBLIKASI ... iii
RIWAYAT HIDUP ... v
UCAPAN TERIMAKASIH ... vi
ABSTRAK ... ix
ABSTRACT ... x
DAFTAR ISI ... xi
DAFTAR TABEL ... xiv
DAFTAR GAMBAR ... xv
BAB 1 PENDAHULUAN ... 1
1.1. Latar Belakang ... 1
1.2. Rumusan Masalah ... 2
1.3. Tujuan Penelitian ... 2
1.4. Batasan Atau Ruang Lingkup Penelitian ... 3
1.5. Manfaat Penelitian ... 3
BAB 2 TINJAUAN PUSTAKA ... 4
2.1. Komparasi ... 4
2.2. Centralized Cache dan Distributed Cache ... 4
2.3. Cache ... 5
2.4. Protocol ... 6
2.4.2. Cache Digest ... 6
2.5. Web Proxy Server ... 6
2.6. Nginx ... 8
2.7. Hierarki Proxy ... 10
2.8. Webserver Stress Tool ... 11
2.8.1. Siege ... 11
2.8.2. Apache Bench ... 12
BAB 3 METODOLOGI PENELITIAN ... 13
3.1. Tahapan Penelitian ... 13
3.1.1. Kebutuhan Software ... 14
3.1.2. Kebutuhan Hardware ... 14
3.2. Topologi Centralized Cache ... 15
3.2.1. Topologi Physical ... 15
3.2.2. Topologi Logical ... 16
3.2.2.1. Topologi Logical Cache HIT ... 16
3.2.2.2. Topologi Logical Cache MISS ... 17
3.3. Topologi Distributed Cache ... 18
3.3.1. Topologi Physical ... 18
3.3.2. Topologi Logical ... 19
3.3.2.1. Topologi Logical Cache HIT ... 19
3.3.2.2. Topologi Logical Cache MISS ... 20
3.4. Skenario Pengujian ... 21
3.4.1. Pengujian Reliability ... 21
3.4.1.1. Pengujian Centralized Reliability-1 ... 21
3.4.1.2. Pengujian Centralized Reliability-2 ... 22
3.4.1.3. Pengujian Distributed Reliability-1 ... 23
3.4.1.4. Pengujian Distributed Reliability-2 ... 23
3.4.2. Pengujian Availiability ... 24
3.4.2.1. Pengujian Centralized Availiability-1 ... 24
3.4.2.2. Pengujian Centralized Availiability-2 ... 25
xiii
3.4.2.4. Pengujian Distributed Availiability-2 ... 26
3.4.3. Pengujian Scalability ... 26
3.4.3.1. Pengujian Centralized Scalability-1 ... 27
3.4.3.2. Pengujian Centralized Scalability -2 ... 27
3.4.3.3. Pengujian Distributed Scalability -1 ... 28
3.4.3.4. Pengujian Distributed Scalability -2 ... 28
BAB 4 HASIL DAN PEMBAHASAN ... 30
4.1. Implementasi ... 30
4.1.1. Spesifikasi Komputer Server ... 31
4.1.2. Instalasi dan Konfigurasi Server ... 33
4.2. Pengujian ... 54
4.2.1. Pengujian Pada Distributed Server Proxy ... 54
4.2.2. Pengujian Pada Centralized Server Proxy ... 59
4.3. Komparasi ... 62
BAB 5 KESIMPULAN DAN SARAN ... 64
5.1. Kesimpulan ... 64
5.2. Saran ... 64
DAFTAR PUSTAKA ... 65
DAFTAR TABEL
Hal
TABEL 3.1. Pengujian Centralized Reliability-1 ... 22
TABEL 3.2. Pengujian Centralized Reliability-2 ... 22
TABEL 3.3. Pengujian Distributed Reliability-1 ... 23
TABEL 3.4. Pengujian Distributed Reliability-2 ... 23
TABEL 3.5. Pengujian Centralized Availiability-1 ... 24
TABEL 3.6 Pengujian Centralized Availiability-2 ... 25
TABEL 3.7 Pengujian Distributed Availiability-1 ... 25
TABEL 3.8 Pengujian Distributed Availiability-2 ... 26
TABEL 3.9 Pengujian Centralized Scalability-1 ... 27
TABEL 3.10 Pengujian Centralized Scalability-2 ... 27
TABEL 3.11 Pengujian Distributed Scalability-1... 28
TABEL 3.12 Pengujian Distributed Scalability-2... 28
TABEL 4.1 Spesifikasi Server dan Sistem Operasi ... 31
TABEL 4.2 Komparasi Percobaan 1 ... 62
TABEL 4.3 Komparasi Percobaan 2 ... 63
xv
DAFTAR GAMBAR
Hal
GAMBAR 2.1. Centralized dan Distributed ... 5
GAMBAR 2.2. Proxy Server ... 7
GAMBAR 2.3. Reverse Proxy ... 10
GAMBAR 2.4. Hierarki Proxy ... 11
GAMBAR 3.1 Tahapan Penelitian ... 13
GAMBAR 3.2 Topologi Physical Centralized ... 15
GAMBAR 3.3 Topologi Logical Cache HIT pada Centralized Cache ... 16
GAMBAR 3.4 Topologi Logical Cache MISS pada Centralized Cache ... 17
GAMBAR 3.5 Topologi Physical Distributed ... 18
GAMBAR 3.6 Topologi Logical Cache HIT ... 19
GAMBAR 3.7 Topologi Logical Cache MISS ... 20
GAMBAR 4.1 Arsitektur Virtualisasi ... 30
GAMBAR 4.2 Topologi Jaringan Virtualisasi ... 33
GAMBAR 4.3 Tampilan Portal oVirt Engine ... 34
GAMBAR 4.4 Node yang sudah di add ke engine ... 36
GAMBAR 4.5 Install ISO ... 37
GAMBAR 4.6 Metode Hash ... 43
GAMBAR 4.7 Pengujian Availiability 3000 user pada distributed proxy ... 54
GAMBAR 4.8 Konversi File Grafik Availiability ... 55
GAMBAR 4.9 Grafik Pengujian Sistem Distributed Availiability 3000 user .. 55
GAMBAR 4.10 Pengujian Reliability 3000 user pada distributed proxy ... 56
GAMBAR 4.11 Konveksi File Grafik Reliability ... 56
GAMBAR 4.12 Grafik Pengujian Sistem Distributed Reliability 3000 user ... 57
GAMBAR 4.13 Pengujian Scalability 5000 user pada distributed proxy ... 58
GAMBAR 4.14 Konversi File Grafik Scalability ... 58
GAMBAR 4.15 Grafik Pengujian Sistem Distributed Scalability 5000 user ... 58
GAMBAR 4.16 Pengujian Availiability pada centralized proxy ... 59
GAMBAR 4.18 Konversi File Grafik Reliability ... 60
GAMBAR 4.19 Grafik Pengujian Sistem Centralized Reliability 3000 user ... 60
GAMBAR 4.20 Pengujian Scalability pada centralized proxy ... 61
GAMBAR 4.21 Konversi File Grafik Scalability ... 61
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Perkembangan teknologi yang sangat pesat dimulai dengan sistem komputer
stand-alone sampai terhubung dengan internet. Hampir seluruh sektor telah memanfaatkan
sistem teknologi informasi untuk membantu pekerjaan sehari-hari (Hu, et al, 1999). Dalam perkembangan teknologi informasi, informasi mudah didapatkan dengan cepat melalui teknologi jaringan komputer yang dikenal dengan Internet. Masalah yang sering terjadi pada penggunaan internet saat ini adalah kecepatan pengaksesan informasi yang diinginkan tergantung dari besarnya ketersediaan bandwidth yang dimiliki untuk menghasilkan komunikasi yang cepat (Foster, 2003).
Pada penerapan teknologi internet, batasan bandwidth yang tersedia menjadi tantangan terhadap kenyamanan user dalam mengakses internet, contohnya di dalam suatu organisasi yang mengalami pertambahan jumlah user yang cukup besar. Jika besar bandwidth yang digunakan tetap sama, maka user akan mendapatkan slow
response dari web proxy. Teknologi yang semakin hari membutuhkan bandwidth yang
besar juga menjadi pertimbangan dalam menyediakan jumlah bandwidth bagi setiap
user (Tanembaum, 2003). Untuk mengatasi permasalahan bandwidth, maka dicari
solusi untuk mengoptimalkan penggunaan bandwidth dengan menggunakan teknik
caching.
Teknik Caching adalah suatu teknik yang menggunakan cache untuk menyimpan dokumen web sementara, seperti halaman HTML, dan gambar yang sebelumnya pernah diakses oleh user. Dengan menggunakan teknik caching dapat mengurangi penggunaan bandwidth untuk me-request halaman yang sama ke origin
server, sehingga pengguna merasakan transfer data yang lebih cepat karena data yang
Dalam teknik caching ada 3 (tiga) sistem yang dikenal yaitu, tanpa proxy
server, centralized caching web proxy server dan yang terakhir distributed caching web proxy server. Sistem yang umum digunakan adalah centralized caching proxy server,
pada teknik centralized caching proxy server ditemukan masalah terhadap avaliability,
reliability, dan scalability yang harus dimiliki sebuah sistem yang handal. Masalah avaliability yang dihadapi oleh teknik ini adalah ketika single proxy web server down
dan tidak ada backup server untuk menangani request user, sedangkan masalah untuk
reliability kemungkinan single web proxy server tidak dapat menangani request yang
banyak dari user, dan masalah terakhir adalah scalability yaitu ketika jumlah pengguna bertambah, centralized caching proxy server tidak dapat dikembangkan dengan mudah. Berdasarkan permasalahan yang dihadapi oleh centralized web proxy server maka diperlukan solusi untuk mengatasi masalah tersebut, salah satunya adalah dengan menggunakan distributed caching proxy server (Piatek 2004). Teknik ini akan mendistribusikan cache ke beberapa web proxy server, sehingga dapat mendukung
availability dari segi tersedianya backup server, reliability dari segi penanganan
(pendistribusian) request, dan scalability dari segi pengembangan sistem (penambahan
web proxy) jika jumlah pengguna bertambah.
1.2. Rumusan Penelitian
Berdasarkan latar belakang yang sudah dijelaskan maka perumusan masalah dalam penelitian ini adalah perlu untuk menganalisis komparasi distributed cache dengan
centralized cache dan pemanfaatan efektifitas dari sistem distributed cache dan sistem centralized cache pada web proxy dalam menangani request dari setiap user.
1.3. Tujuan Penelitian
Tujuan penelitian ini adalah untuk mendapatkan hasil evaluasi komparasi dari sistem
distributed cache dan centralized cache dengan cara mensinergikan protokol
pendukung yang digunakan, sehingga di dapat hasil performansi yang paling efisien dan efektif untuk diimplementasikan. Dengan adanya hasil evaluasi komparasi dari sistem
distributed cache dan centralized cache ini maka akan membantu setiap administrator
3
1.4. Batasan atau Ruang Lingkup Penelitian
Dalam penelitian ini terdapat beberapa batasan dalam pembahasan yang dilakukan antara lain:
a. Menggunakan aplikasi web proxy yang open-source untuk menguji sistem
centralized cache dan sistem distributed cache.
b. Mengetahui seberapa baik performa aplikasi web server dan seberapa banyak client atau koneksi yang bisa ditangani oleh web server.
c. Mengevaluasi hasil komparasi sistem centralized cache dan sistem
distributed cache dengan teknik virtualisasi.
1.5 Manfaat Penelitian
Manfaat yang diperoleh dari penelitian ini adalah sebagai berikut:
a. Mendapatkan hasil komparasi antara distributed cache dengan centralized
cache.
b. Mendapatkan teknik virtualisasi yang baik untuk diterapkan c. Mengetahui performa web server yang telah dibangun.
BAB 2
TINJAUAN PUSTAKA
Pada bab ini dijelaskan berbagai teori yang mendasari pengerjaan penelitian ini berdasarkan studi dan eksplorasi pustaka. Teori tersebut mencakup cache, protokol, dan proxy.
2.1. Komparasi
Komparasi adalah untuk mengetahui dan menguji perbedaan dua kelompok atau lebih. Penelitian komparasi juga adalah penelitian yang dilakukan untuk membandingkan suatu variabel (objek penelitian), antara subjek yang berbeda atau waktu yang berbeda dan menemukan hubungan sebab-akibatnya. Metode komparasi adalah suatu metode yang digunakan untuk membandingkan data yang ditarik ke dalam konklusi baru. Komparasi sendiri dari bahasa inggris, yaitu compare, yang artinya membandingkan untuk menemukan persamaan dari kedua konsep atau lebih.
Mohammad Nazir (2005 : 8) mengemukakan bahwa studi komparasi adalah sejenis penelitian yang ingin mencari jawaban secara mendasar tentang sebab akibat, dengan menganalisa faktor penyebab terjadinya maupun munculnya suatu fenomena tertentu. Dalam hal ini, komparasi dilakukan terhadap performansi distributed cache dan centralized cache pada web proxy. Adapun beberapa parameter yang akan digunakan adalah bandwidth, speed, cache hit ratio.
2.2 Centralized Cache dan Distributed Cache
Centralized cache merupakan chace terpusat yang dapat menampung semua data
organisasi komputer pusat seperti komputer mainframe atau server. Distributed Cache adalah metode untuk mengkonfigurasi cache data untuk menjangkau beberapa server, menyimpan permintaan umum dan memungkinkan pengambilan secara cepat. Cache terdistribusi tersebut digunakan pada server web dan server aplikasi untuk menyediakan
5
penyimpanan non-lokal untuk redundansi yang lebih baik. Data yang tersimpan dalam
cache terdistribusi umumnya ditentukan oleh apa yang paling sering diakses pengguna
dari server web atau aplikasi tertentu. Seperti yang diminta sebelumnya, potongan data dibiarkan tidak terbaca, data yang baru-baru ini diminta lebih diutamakan, data lama akhirnya terhapus dari cache.
Gambar 2.1 Centralize dan Distributed
2.3 Cache
Cache adalah sebuah media penyimpanan sesuatu secara sementara yang digunakan
untuk menyimpan data/ instruksi yang pernah diakses. Cache membuat kita tidak perlu me-request ulang objek yang pernah kita akses ke original server. Caching merupakan sebuah cara untuk menyimpan objek-objek internet yang diminta (seperti halnya pada halaman web) yang dapat diakses melalui HTTP dan FTP. Caching merupakan sebuah cara sederhana dan efektif guna meningkatkan performa aplikasi web.
2.4 Protokol
Protokol adalah suatu tool yang mendukung pengoptimalan performansi cache terdistribusi, adapun beberapa protokol yang dapat digunakan adalah HTCP dan Cache
Digest. Protokol – protokol ini akan dikombinasikan untuk mengatasi berbagai
kelemahan-kelemahan yang terdapat disetiap protokol. Adapun kegunaan protokol ini adalah membantu pendistribusian cache, mencari letak objek yang di-request oleh user di dalam penyimpanan cache, serta mampu meningkatkan cache hit ratio (rasio Objek yang di-request oleh user ada didalam cache).
2.4.1 HTCP
Hypertext Caching Protocol (HTCP) adalah protokol yang menggantikan ICP, dimana
protokol ini telah mengatasi berbagai permasalahan yang ditemui di protokol ICP. Protokol ini juga digunakan untuk menemukan cache HTTP dan data cache. Untuk versi HTTP/1.1 atau yang terbaru HTCP lebih baik jika dibandingkan ICP, karena dapat menghasilkan Hit Rate yang lebih baik.
2.4.2 Cache Digest
Cache Digest dibuat untuk mengatasi permasalahan latency dan congestion yang terjadi
di mekanisme komunikasi cache sebelumnya seperti ICP dan HTCP. Berbeda dengan kebanyakan protokol, Cache Digest telah mendukung peering di antara beberapa cache
server, sehingga dimungkinkan untuk melakukan pencarian peer (server) mana yang
mempunyai objek yang di-request oleh user Selain itu, protokol ini juga sudah didukung oleh nginx.
2.5 Web Proxy Server
Dalam jaringan komputer, sebuah web proxy server adalah sebuah server yang berperan sebagai penghubung antara request dari client ke server (Warman & Zahni, 2013).
Proxy server bertindak sebagai gateway untuk setiap komputer client. Sebuah client
7
page, atau resource lain yang berada di server yang berbeda. Pada saat ini proxy
seringkali digunakan dalam distributed system.
Proxy memiliki 3 fungsi utama, yaitu:
a. Gateway (Connection Sharing)
Proxy dapat digunakan sebagai gateway dari semua komputer yang terdapat
pada jaringan lokal yaitu dengan cara semua komputer yang berada pada jaringan lokal menggunakan alamat IP publik yang dimiliki oleh proxy
server sehingga setiap computer yang ada pada jaringan lokal tidak harus
memiliki alamat IP publik untuk mengakses internet. b. Firewall (Filtering)
Proxy bekerja pada layer aplikasi sesuai dengan aturan OSI Layer, maka filtering yang dilakukan oleh proxy lebih baik daripada firewall biasa karena
dapat mengecek URL dari permintaan akses keluar untuk halaman web. Dengan kemampuan tersebut, administrator dapat melarang atau mengijinkan akses ke domain tertentu.
c. Caching
Yaitu proxy server memiliki mekanisme penyimpanan objek-objek yang sudah pernah diminta dari sever-server di Internet, biasanya disebut
caching. Caching proxy menyimpan data yang sering diminta oleh client ke
suatu tempat penyimpanan di server
Beberapa keuntungan dan kerugian menggunakan proxy server. Adapun yang menjadi keuntungan penggunaan proxy server adalah sebagai berikut:
a. Dapat menghemat biaya bandwidth.
b. Mempercepat koneksi karena file-file web yang direquest (selanjutnya disebut object) disimpan di dalam cache sehingga tidak perlu keluar menuju Internet.
c. Dapat melakukan pembatasan untuk file-file tertentu.
d. Dapat melakukan pembatasan akses kepada situs-situs tertentu (misalnya situs porno).
e. Dapat melakukan pembatasan download untuk file-file tertentu (misalnya file-file mp3,wav, dsb).
f. Dapat melakukan pembatasan waktu-waktu yang diperbolehkan untuk
download.
g. Dapat melakukan pembatasan siapa saja yang boleh mengakses Internet dengan menggunakan autentikasi. Autentikasi yang biasa digunakan bisa
basic, digest, ataupun ntlm.
Sedangkan yang menjadi kerugian dari penggunaan proxy server, diuraikan sebagai berikut :
a. Pintu keluar menuju gerbang Internet hanya lewat proxy, sehingga ketika terjadi over-load, akses Internet menjadi lambat.
b. User akan melihat file yang kadaluarsa jika cacheexpiretime-nya terlalu lama, sehingga meskipun di website file tersebut sudah berubah, user masih melihat file yang tersimpan di cache memory.
c. Karena koneksi Internet harus melalui gerbang proxy terlebih dahulu, maka kecepatan akses bisa jadi lebih lambat daripada kita melakukan koneksi langsung. Dalam hal ini keduanya akan mengakses file Internet secara langsung.
2.6 Nginx
Nginx (baca: engine x) adalah sebuah server HTTP dan reverse proxy bebas berbasis open-source yang berkemampuan tinggi, juga dapat digunakan sebagai server proxy IMAP/POP3. Nginx merupakan sebuah perangkat lunak yang berfungsi sebagai web
9
server (Aivaliotis, 2013). Perangkat lunak ini diciptakan oleh Igor Sysoev pada tahun
2002, dan dirilis untuk pertama kalinya secara umum pada tahun 2004. Saat ini Nginx digunakan oleh 7,65% (22.8juta) nama domain di seluruh dunia. Nginx menggunakan arsitektur asinkron yang berbasis event-driven dalam menangani permintaan (request) (NGINX Software, 2017). Selain untuk web server, nginx juga dapat digunakan untuk
reverse proxy caching, load balancing, media streaming, dan lain sebagainya.
Nginx terkenal karena performanya yang tinggi, stabil, memiliki banyak fitur, mudah dikonfigur, dan menggunakan hanya sedikit sumberdaya pada server. Nginx adalah salah satu dari sebagian kecil perangkat lunak untuk server yang diciptakan untuk mengatasi Problem C10K. Tidak seperti perangkat lunak server yang umum lainnya, Nginx tidak bergantung kepada thread untuk melayani klien. Sebaliknya, Nginx menggunakan arsitektur asynkronus yang lebih stabil. Arsitektur ini membutuhkan lebih sedikit memory, dan yang lebih penting, dapat diperkirakan.
Manfaat dari penggunaan nginx proxy antara lain:
a. Browsing semakin cepat untuk situs yang sudah pernah dibuka. b. Kuota pemakaian Internet atau bandwidth akan lebih irit
c. Penggunaan Internet bisa untuk banyak user (Expandable User)
Cara kerja nginx pertama-tama akan memeriksa request yang datang. Jika
nginx diset dengan autentikasi tertentu, nginx akan memeriksa autentikasi user terlebih
dahulu. Autentikasi ini termasuk subnet area, user account, jenis file yang direquest, alamat situs tujuan, dan properti-properti yang telah diset pada file konfigurasi nginx. Jika lolos dan telah sesuai dengan konfigurasi, request tersebut kembali diperiksa apakah objek yang diminta telahberada di cache. Jika sudah ada maka proxy server tidak perlu melanjutkan request ke Internet tetapi langsung me-reply request dengan objek yang diminta. Jika tidak ada di cache, nginx dapat menghubungi sibling-nya agar bisa saling tukar cache informasi menggunakan protocol icp. Jika masih tidak ada,
nginx akan merequest ke parentnya. Parent harus menyediakan informasi yang diminta,
Gambar 2.3 Reverse Proxy
Dari gambar diatas dapat dilihat bahwa sebuah proxy dapat meng-handle beberapa web server. Adapun cara kerjanya adalah client akan melakukan akses terhadap sebuah URL misalnya https://www.google.co.id maka secara otomatis client akan melakukan request terlebih dahulu ke proxy server akan tetapi seolah - olah client melakukan request langsung ke web server. Setelah menerima request dari client, maka proxy server akan meneruskan request tersebut ke web server yang dituju.
2.7 Hierarki Proxy
Dalam pengimplementasian sistem distributed cache diperlukan sebuah hierarki proxy. Dalam hierarki ini ada beberapa komponen yang berperan, yaitu:
a. Child proxy
Child proxy akan bertugas sebagai load balancer, child akan menerima request
dari client lalu meneruskannya ke parent proxy. Dalam pemilihan tujuan
request ke parent proxy, child akan memilih berdasarkan algoritma Round-Robin. Algoritma ini akan membagi request (beban) ke beberapa parent proxy.
b. Parent proxy
Parent proxy akan bertugas menerima request yang didapat dari child proxy.
11
berkomunikasi dengan menggunakan protokol HTTP dan HTCP. Dalam proses melayani request, Pertama sekali parent proxy akan mencari object di
cache directory-nya, jika object tidak ditemukan, parent akan mencari object
ke parent proxy yang lain (sibling-nya). Jika object tidak ditemukan juga,
parent proxy akan me-request object ke origin server. Object yang didapat dari origin server tadi selanjutnya disimpan di cache directory-nya, dan dikirim ke child proxy untuk diteruskan ke client.
Adapun hierarki yang digunakan dalam pendistribusian cache-nya adalah sebagai berikut:
Gambar 2.4 Hierarki Proxy
2.8 Webserver Stress Tool
Webserver stress tool adalah sebuah aplikasi untuk melakukan test pada suatu web server. Aplikasi ini biasanya digunakan untuk menguji apakah sebuah server masih
dapat melakukan performa yang baik ketika jumlah user menambah dengan pesat (Scalability), dan apakah ada kemungkinan web server tidak dapat menangani jumlah
request yang banyak (Reliability). Aplikasi ini akan membuat virtual user yang
dibutuhkan pada saat melakukan test. Adapun aplikasi webserver stress tool yang digunakan dalam penelitian ini adalah Siege.
2.8.1 Siege
Siege adalah aplikasi yang dibuat untuk keperluan stress test dan benchmark webserver. Stress test dan benchmarking diperlukan untuk mengetahui seberapa baik performa
aplikasi web, dan seberapa banyak client atau koneksi yang bisa ditangani oleh aplikasi tersebut.
2.8.2 Apache Bench
Fungsi Apache Bench yaitu untuk mengetahui performa aplikasi yang telah dibuat, berapa lama waktu yang dibutuhkan untuk melayani beberapa pengguna. Pengujian dilakukan melalui Bash, output menunjukkan performa aplikasi, waktu yang dibutuhkan untuk melayani permintaan, dan besaran data yang ditransfer.
BAB 3
METODOLOGI PENELITIAN
Dalam meningkatkan kecepatan akses internet, pengaturan topologi jaringan dan penambahan proxy server dapat dilakukan. Dengan adanya proxy server, client tidak perlu mengirim request satu per satu ke internet. Hal ini membuat waktu kecepatan akses client lebih cepat dalam mengirimkan request terhadap suatu website.
Pada bab ini dijelaskan mengenai kebutuhan software dan hardware, topologi pengujian distributed chace (physical dan logical), dan skenario pengujian yang digunakan.
3.1 Tahapan Penelitian
Membuat Topologi
Distributed dan Centralized
Menggunakan Topologi Logical Cache Hit dan Topologi Logical
Cache Miss
Pengujian Centralized Reliability Pengujian Distributed Reliability
Pengujian Distributed Availability Pengujian Centralized Availability
Pengujian Centralized Scalability Pengujian Distributed Scalability
Hasil Response Time
3.1.1 Kebutuhan Software
Software yang digunakan dalam penelitian ini adalah sebagai berikut:
1. Sistem Operasi Centos sebagai virtual machine yang di-install beberapa
service seperti DNS, HTTP, HTTPS) dan web proxy server nginx.
2. Apache Bench, digunakan untuk melakukan pengujian beban terhadap
web server, aplikasi ini di-install pada komputer server virtual yang
bertugas sebagai server testing. Aplikasi ini juga akan meng-convert hasil pengujian kedalam bentuk grafik.
3. Nginx Proxy Server, digunakan sebagai web proxy. Software ini dipilih karena mendukung penggunaan memori (RAM) sebagai penyimpanan
cache, serta telah Mendukung protokol HTCP, dan Cache Digest sebagai
media komunikasi antar server.
4. Protokol HTCP, dan Cache Digest yang mendukung pengimplementasian
distributed caching mulai dari penyimpanan cache hingga mengambil cache dari disk.
5. Aplikasi Open Virtualisation yang free dan opensource.
3.1.2 Kebutuhan Hardware
Hardware yang digunakan dalam penelitian ini adalah sebagai berikut :
1. 5 (lima) unit PC (Personal Computer) yang akan dijadikan virtualisasi skala enterprise dimanfaatkan sebagai webserver, database server, dns, dan testing. Masing-masing komputer server sudah mendukung 1-Gbps LAN Card.
2. 1 unit router mikrotik, untuk me-manage jaringan internet dan membagi IP (Internet Protocol) ke masing-masing komputer server.
3. 1 unit switch gigabit, sebagai penghubung masing-masing komputer
server ke router.
4. 1 unit laptop tempat pengujian beban web server dan untuk me-remote masing-masing komputer server.
15
3.2 Topologi Centralized Cache
Topologi ini menjelaskan keterkaitan antar komponen-komponen yang dibutuhkan, serta aliran data yang terjadi di masing-masing perangkat.
3.2.1 Topologi Physical
Topologi Physical menjelaskan keterkaitan antar komponen komponen yang dibutuhkan pada saat pengujian, berikut gambar topologi Physical yang digunakan pada saat pengujian.
ISP
Modem
Router Proxy Server
Switch
Client
Gambar 3.2 Topologi Physical Centralized
Topologi diatas digunakan untuk pengujian centralized caching. Peran komponen pada topologi physical adalah sebagai berikut:
1. Client, perangkat ini digunakan untuk me-request halaman web, yang merupakan virtual user yang dibuat oleh webserver stress tool.
2. Mikrotik, perangkat ini digunakan untuk menghubungkan semua perangkat yang digunakan.
3. Proxy server, perangkat ini digunakan sebagai web proxy yang akan mengatur segala mekanisme centralized caching.
3.2.2 Topologi Logical
Topologi Logical menggambarkan bagaimana aliran data pada masing-masing komponen pada saat pengujian. Ada 2 topologi logical yang digunakan, yang pertama adalah saat object yang di-request oleh client ada pada web proxy (cache HIT), dan yang kedua saat object yang di-request oleh client tidak ada pada web proxy sehingga
object harus di-request ke Origin Server (cache MISS).
3.2.2.1 Topologi Logical Cache HIT
Topologi logical cache HIT menggambarkan bagaimana aliran data yang terjadi saat terjadi cache HIT. Berikut gambar topologi Logical cache HIT:
Gambar 3.3 Topologi Logical Cache HIT pada Centralized Cache
Penjelasan mengenai masing-masing proses yang terjadi adalah sebagai berikut.
1. Pertama request dikirim oleh client melalui browser, router kemudian menerima request tersebut, lalu akan meneruskannya ke proxy server yang bertugas menerima dan menangani request client.
2. Lalu proxy server memproses request client tersebut, proxy server akan menentukan kemana request akan di-forward. Proxy akan mencari tahu apakah
object yang di-request tersebut ada pada cache directory-nya atau tidak. Jika
17
3.2.2.2 Topologi Logical Cache MISS
Topologi logical cache MISS menggambarkan bagaimana aliran data yang terjadi saat terjadi cache MISS. Berikut gambar topologi logical cache MISS:
Gambar 3.4 Topologi Logical Cache MISS pada Centralized Cache
Penjelasan mengenai masing-masing proses yang terjadi adalah sebagai berikut.
1. Pertama request dikirim oleh client melalui browser, router kemudian menerima request tersebut, lalu akan meneruskannya ke proxy server yang bertugas menerima dan menangani request client.
2. Lalu proxy memproses request client tersebut, proxy akan menentukan kemana
request akan di-forward. Saat object tidak ditemukan di proxy, proxy akan
melakukan request ke origin server untuk mendapatkan object yang di-request oleh client.
3. Kemudian Origin Server akan mengirimkan object yang di-request tadi ke
proxy.
4. Proxy akan menyimpan object yang diterimanya dari origin server, dan mengirimkan response ke client.
3.3 Topologi Distributed Cache
Topologi ini menjelaskan keterkaitan antar komponen-komponen yang dibutuhkan, serta aliran data yang terjadi di masing-masing perangkat.
3.3.1 Topologi Physical
Topologi Physical menjelaskan keterkaitan antar komponen komponen yang dibutuhkan pada saat pengujian, berikut gambar topologi Physical yang digunakan pada saat pengujian.
Gambar 3.5 Topologi Physical Distributed
Topologi diatas digunakan untuk pengujian distributed caching. Peran komponen pada topologi physical adalah sebagai berikut:
1. Client, perangkat ini digunakan untuk me-request halaman web, yang merupakan virtual user yang dibuat oleh webserver stress tool.
2. Mikrotik, perangkat ini digunakan untuk menghubungkan semua perangkat yang digunakan.
3. Proxy server, perangkat ini digunakan sebagai web proxy yang akan mengatur segala mekanisme distributed caching.
19
3.3.2 Topologi Logical
Topologi Logical menggambarkan bagaimana aliran data pada masing-masing komponen pada saat pengujian. Ada 2 topologi logical yang digunakan, yang pertama adalah saat object yang di-request oleh client ada pada web proxy (cache HIT), dan yang kedua saat object yang di-request oleh client tidak ada pada web proxy sehingga
object harus di-request ke Origin Server.
3.3.2.1 Topologi Logical Cache HIT
Topologi logical cache HIT menggambarkan bagaimana aliran data yang terjadi saat terjadi cache HIT. Berikut gambar topologi Logical cache HIT :
ISP Modem Router Virtual User Child Parent1 Parent2 Cache Object MISS Cache Object HITT Keterangaan :
Request Object ke Proxx y Server Response Object dari Prox y Server
1 4 1 4 2.1 3.1 3.2 2.2 2.1 2.2
Gambar 3.6 Topologi Logical Cache HIT
Penjelasan mengenai masing-masing proses yang terjadi adalah sebagai berikut.
1. Pertama request dikirim oleh client melalui browser, Mikrotik kemudian menerima request tersebut, lalu akan meneruskannya ke child/main server yang bertugas menerima dan menangani request client.
2. Lalu child proxy memproses request client tersebut, child proxy akan menentukan kemana request akan di-forward. Disinilah fungsi Load
Balancing dari child proxy, dimana dia membagi load yang diterimanya ke
beberapa proxy server (parent proxy 1 dan parent proxy 2). Adapun algoritma
Load Balancing yang digunakan adalah Round-Robin, Algoritma ini akan
server akan meneruskan request dari client ke parent proxy 1, sedangkan pada
proses 2.2 child server akan meneruskan request dari client ke parent proxy 2. Ketika parent proxy telah menerima request dari child proxy, parent proxy akan mencari tahu apakah object yang di-request tersebut ada pada cache
directory-nya atau tidak. Jika ditemukan, parent proxy akan mengirimkan object tersebut ke child proxy, lalu child proxy akan mengirimkan response ke client. Jika tidak ditemukan, parent proxy akan mencari object tersebut ke parent proxy lain
3.3.2.2 Topologi Logical Cache MISS
Topologi logical cache MISS menggambarkan bagaimana aliran data yang terjadi saat terjadi cache MISS. Berikut gambar topologi logical cache MISS:
ISP Modem Router Virtual User Child Parent1 Parent2 Cache Object MISS
Cache Object MISS Keterangaan :
Request Object ke Proxx y Server Response Object dari Prox y Server
Request Object ke Orig in Server Response Object dari Orig in Server
1 5 4 5 2 5 3 1 Cache Object SAVED 4 3
Gambar 3.7 Topologi Logical Cache MISS
Penjelasan mengenai masing-masing proses yang terjadi adalah sebagai berikut.
1. Pertama request dikirim oleh client melalui browser, Mikrotik kemudian menerima request tersebut, lalu akan meneruskannya ke child/main server yang bertugas menerima dan menangani request client.
2. Lalu child proxy memproses request client tersebut, child proxy akan menentukan kemana request akan di-forward. Disinilah fungsi Load
Balancing dari child proxy, dimana dia membagi load yang diterimanya ke
beberapa proxy server (parent proxy 1 dan parent proxy 2). Adapun algoritma
21
membagi request (beban) ke beberapa parent proxy. Pada proses 2.1 child
server akan meneruskan request dari client ke parent proxy 1, sedangkan pada
proses 2.2 child server akan meneruskan request dari client ke parent proxy 2. 3. Saat object tidak ditemukan di parent proxy, parent proxy akan melakukan
request ke origin server untuk mendapatkan object yang di-request oleh client.
4. Kemudian Origin Server akan mengirimkan object yang di-request tadi ke
parent proxy.
5. Parent proxy akan menyimpan object yang diterimanya dari origin server, dan mengirimkan response ke child proxy. Kemudian Child proxy mengirimkan
response ke client.
3.4 Skenario Pengujian
Skenario pengujian menjelaskan bagaimana mengevaluasi performansi web proxy
server. Hasil pengujian ini diharapkan dapat menjadi evaluasi, untuk membantu
meningkatkan performansi web proxy server. Adapun karakteristik yang ingin diuji adalah Reliability, Availability, dan Scalability. Reliability adalah kemampuan server dalam menangani request atau permintaan yang banyak dari user atau pengguna,
Availiability adalah ketersediaan server apabila server utama down atau mati, sedangkan Scalability adalah kemampuan server dalam menangani request atau permintaan ketika
jumlah user atau pengguna bertambah.
Berikut merupakan skenario yang akan digunakan pada saat pengujian web
proxy server.
3.4.1 Pengujian Reliability
Pengujian Reliability dilakukan untuk melihat kemampuan sistem apakah tetap reliable ketika jumlah request yang diberikan ke server bertambah. Pada pengujian Reliability, dilakukan perbedaan pada jumlah user. Berikut skenario yang dipakai untuk menguji
Reliability sistem:
3.4.1.1 Skenario Pengujian Centralized Reliability -1
Skenario pengujian ini dilakukan untuk melihat Reliability dari sistem centralized. Pada skenario ini digunakan 3000 user.
Tabel 3.1. Pengujian Centralized Reliability -1
Pengujian Reliabiliy (1)
Kondisi Awal - Request User 3000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 3000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
- Tentukan protocol yang digunakan
Hasil Akhir
- Apache Bench akan membuat request yang simultan sebanyak 3000.
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke PNG dalam bentuk grafik.
3.4.1.2 Skenario Pengujian Centralized Reliability -2
Skenario pengujian ini dilakukan untuk melihat Reliability dari sistem centralized. Pada skenario ini digunakan 5000 user.
Tabel 3.2. Pengujian Centralized Reliability -2
Pengujian Reliabiliy (2)
Kondisi Awal - Request User 5000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 5000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
- Tentukan protocol yang digunakan
Hasil Akhir
- Apache Bench akan membuat request yang simultan sebanyak 5000.
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke bentuk PNG dalam bentuk grafik.
23
3.4.1.3 Skenario Pengujian Distributed Reliability -1
Skenario pengujian ini dilakukan untuk melihat Reliability dari sistem distributed. Pada skenario ini digunakan 3000 user.
Tabel 3.3. Pengujian Distributed Reliability -1
Pengujian Reliabiliy (1)
Kondisi Awal - Request User 3000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 3000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
- Tentukan protocol yang digunakan
Hasil Akhir
- Apache Bench akan membuat request yang simultan sebanyak 3000.
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke PNG dalam bentuk grafik.
3.4.1.4 Skenario Pengujian Distributed Reliability -2
Skenario pengujian ini dilakukan untuk melihat Reliability dari sistem distributed. Pada skenario ini digunakan 5000 user.
Tabel 3.4. Pengujian Distributed Reliability -2
Pengujian Reliabiliy (2)
Kondisi Awal - Request User 5000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 5000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
Hasil Akhir
- Apache Bench akan membuat request yang simultan sebanyak 5000.
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke bentuk PNG dalam bentuk grafik.
3.4.2 Pengujian Availability
Pengujian Availability dilakukan untuk melihat kemampuan sistem apakah tetap
Available child proxy down (mati). Pengujian Availability dilakukan pada sistem distributed cache. Pada pengujian Availability, diterapkan mekanisme failover, dimana
jika main child proxy down, backup child proxy akan menggantikan tugas main child
proxy. Berikut skenario yang dipakai untuk menguji Availability sistem: 3.4.2.1 Skenario Pengujian Centralized Availability-1
Skenario pengujian ini dilakukan untuk melihat Availability dari sistem centralized. Pada skenario ini akan dilihat bagaimana mekanisme failover berjalan ketika main child
proxy mati (down).
Tabel 3.5. Pengujian Centralized Availability-1
Pengujian Availability (1)
Kondisi Awal - Request User 3000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 3000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
- Tentukan protocol yang digunakan
Hasil Akhir
- Apache Bench akan membuat request yang simultan sebanyak 3000.
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke bentuk PNG dalam bentuk grafik.
25
3.4.2.2 Skenario Pengujian Centralized Availability-2
Tabel 3.6. Pengujian Centralized Availability-2
Pengujian Availability (2)
Kondisi Awal - Request User 5000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 5000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
- Tentukan protocol yang digunakan
Hasil Akhir
- Apache Bench akan membuat request yang simultan sebanyak 5000.
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke bentuk PNG dalam bentuk grafik.
3.4.2.3 Skenario Pengujian Distributed Availability-1
Skenario pengujian ini dilakukan untuk melihat Availability dari sistem distributed. Pada skenario ini akan dilihat bagaimana mekanisme failover berjalan ketika main child
proxy mati (down).
Tabel 3.7. Pengujian Distributed Availability-1
Pengujian Availability (1)
Kondisi Awal - Request User 3000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 3000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
- Tentukan protocol yang digunakan
Hasil Akhir - Apache Bench akan membuat request yang
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke bentuk PNG dalam bentuk grafik.
3.4.2.4 Skenario Pengujian Distributed Availability-2
Skenario pengujian ini dilakukan untuk melihat Availability dari sistem distributed. Pada skenario ini akan dilihat bagaimana mekanisme failover berjalan ketika main child
proxy mati (down).
Tabel 3.8. Pengujian Distributed Availability-2
Pengujian Availability (2)
Kondisi Awal - Request User 5000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 5000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
- Tentukan protocol yang digunakan
Hasil Akhir
- Apache Bench akan membuat request yang simultan sebanyak 5000.
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke bentuk PNG dalam bentuk grafik.
3.4.3 Pengujian Scalability
Pengujian Scalability dilakukan untuk melihat kemampuan sistem apakah tetap
Scalable ketika terjadi penambahan jumlah resource (request, dan user), dan seberapa
cepat sistem dapat menambahkan server yang baru untuk mengatasi overload. Pada pengujian Scalability dilakukan perbandingan hasil pengujian yang didapat dengan menambahkan server dan tanpa menambahkan server. Server yang ditambahkan adalah
27
3.4.3.1 Skenario Pengujian Centralized Scalability -1
Skenario pengujian yang dibandingkan adalah skenario centralized 3000 user. Tabel 3.9. Pengujian Centralized Scalability-1
Pengujian Scalability (1)
Kondisi Awal - Request User 3000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 3000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
- Tentukan protocol yang digunakan
Hasil Akhir
- Apache Bench akan membuat request yang simultan sebanyak 3000.
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke bentuk PNG dalam bentuk grafik.
3.4.3.2 Skenario Pengujian Centralized Scalability -2
Skenario pengujian yang dibandingkan adalah skenario centralized 5000 user. Tabel 3.10. Pengujian Centralized Scalability-2
Pengujian Scalability (1)
Kondisi Awal - Request User 5000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 5000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
- Tentukan protocol yang digunakan
Hasil Akhir - Apache Bench akan membuat request yang
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke bentuk PNG dalam bentuk grafik.
3.4.3.3 Skenario Pengujian Distributed Scalability -1
Skenario pengujian yang dibandingkan adalah skenario centralized 3000 user. Tabel 3.11. Pengujian Distributed Scalability-1
Pengujian Scalability (1)
Kondisi Awal - Request User 3000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 3000
- Tentukan halaman yang akan di akses - Tentukan port yang digunakan
- Tentukan protocol yang digunakan
Hasil Akhir
- Apache Bench akan membuat request yang simultan sebanyak 3000.
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke bentuk PNG dalam bentuk grafik.
3.4.3.4 Skenario Pengujian Distributed Scalability -2
Skenario pengujian yang dibandingkan adalah skenario centralized 5000 user. Tabel 3.12. Pengujian Distributed Scalability-2
Pengujian Scalability (1)
Kondisi Awal - Request User 5000
- File acces log (nginx) kosong
Alur
- Menggunakan aplikasi Apache Bench - Set user request 5000
29
- Tentukan port yang digunakan - Tentukan protocol yang digunakan
Hasil Akhir
- Apache Bench akan membuat request yang simultan sebanyak 5000.
- Hasil pengujian akan di generate ke dalam bentuk TSV dan akan di-convert ke bentuk PNG dalam bentuk grafik.
BAB 4
HASIL DAN PEMBAHASAN
Pada bab ini dijelaskan implementasi bagaimana teknik virtualisasi itu bekerja dan teknik virtualisasi yang digunakan beserta pengujian komparasi Centralize Cache dan
Distributed Cache.
4.1 Implementasi
Perangkat PC (Personal Computer) server yang digunakan berjumlah 5 (lima) unit, 1 (satu) unit sebagai engine, 4 (empat) unit sebagai node. Software yang digunakan untuk virtualisasi adalah oVirt (Open Virtualisation) yang bersifat free dan opesnsource. oVirt terdiri dari 2 (dua) komponen, yaitu oVirt engine dan oVirt node. oVirt engine berfungsi sebagai portal administrator web untuk mengolah virtual machine, komputasi, storage,
network, dan storage. oVirt node bertindak sebagai Hypervisor dimana semua mesin
virtual akan dibuat.
Teknik virtualisasi ini untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara sistem lain, aplikasi atau pengguna berinteraksi dengan sumber daya tersebut. Virtualisasi mengacu kepada upaya menciptakan mesin virtual yang bekerja layaknya sebua komputer lengkap dengan sistem operasi.
31
4.1.1 Spesifikasi Komputer Server
Spesifikasi perangkat komputer server dan sistem operasi yang digunakan sebagai
server virtualisasi, yaitu:
Tabel 4.1 Spesifikasi Server dan Sistem Operasi
Server Uraian
Engine 1. Processor Intel® Core™ i3-6100 CPU @ 3.70GHz 2. RAM 4 GHz
3. Hard Disk 500 GB
4. Sistem Operasi CentOs Linux 7.6
5. LAN Gigabit 6. Aplikasi oVirt
Node-1 1. Processor Intel ® Core™ 2 Duo CPU @ 2.93GHz 2. RAM 4 GHZ
3. Hardisk 250 GB
4. Sistem Operasi oVirt Node 5. LAN Gigabit
Node-2 1. Processor Intel ® Core™ 2 Duo CPU @ 2.93GHz 2. RAM 4 GHZ
3. Hardisk 250 GB
4. Sistem Operasi oVirt Node 5. LAN Gigabit
Node-3 1. Processor Intel ® Core™ 2 Duo CPU @ 2.93GHz 2. RAM 4 GHZ
3. Hardisk 250 GB
4. Sistem Operasi oVirt Node 5. LAN Gigabit
Node-4 1. Processor Intel ® Core™ 2 Duo CPU @ 2.93GHz 2. RAM 4 GHZ
3. Hardisk 250 GB
4. Sistem Operasi oVirt Node 5. LAN Gigabit
2. 1 vRAM 3. Hardisk 20GB
4. Sistem Operasi CentOs Linux 7.6
Proxy-2 1. 1 vCPU 2. 1 vRAM 3. Hardisk 20GB
4. Sistem Operasi CentOs Linux 7.6
Proxy-3 1. 1 vCPU 2. 1 vRAM 3. Hardisk 20GB
4. Sistem Operasi CentOs Linux 7.6
Proxy-4 1. 1 vCPU 2. 1 vRAM 3. Hardisk 20GB
4. Sistem Operasi CentOs Linux 7.6
DNS 1. 1 vCPU 2. 1 vRAM 3. Hardisk 20GB
4. Sistem Operasi CentOs Linux 7.6
Nginx 1. 1 vCPU 2. 1 vRAM 3. Hardisk 20GB
4. Sistem Operasi CentOs Linux 7.6
Parent Proxy 1. 1 vCPU 2. 1 vRAM 3. Hardisk 20GB
4. Sistem Operasi CentOs Linux 7.6
Topologi Jaringan yang digunakan untuk Server Virtualisasi adalah topologi star. Semua komputer server terhubung ke 1 (satu) switch dengan kabel UTP.
33
Internet
Engine Node-1 Node-2 Node-3 Node-4
Router
Switch
10.10.10.1/27
10.10.10.10/27 10.10.10.2/27 10.10.10.3/27 10.10.10.4/27 10.10.10.5/27 Gambar 4.2 Topologi Jaringan Virtualisasi
4.1.2 Instalasi dan Konfigurasi Server
Pada sub bab ini dijelaskan bagaimana proses instalasi dan konfigurasi masing-masing komputer server, software atau service yang digunakan dalam penerapan centralized
caching dan distributed caching.
4.1.2.1 Instalasi Sistem Operasi dan Konfigurasi pada Server Engine
1. Step by step instalasi sistem operasi centOS 7 pada server engine. • Booting menggunakan installer centOS.
• Memilih bahasa yang akan digunakan
• Mengatur Localization, Software, dan System • Memilih lokasi yang diinginkan
• Memulai proses instalasi • Membuat password root • Starting Operating System
2. Konfigurasi engine
Step by step instalasi dan konfigurasi engine
Menginstall update terakhir pada server [root@ovirtengine ~]# yum update -y Memasukkan repository oVirt
[root@ovirtengine ~]# yum install http://resources.ovirt.org/pub/yum-repo/ovirt-release40.rp
Menginstall oVirt
[root@ovirtengine ~]# yum install ovirt-engine –y Konfigurasi oVirt
[root@ovirtengine ~]# engine-setup --generate-answer=/root/answer.txt Konfigurasi Firewall
# firewall-cmd --add-service=http –permanent # sudo firewall-cmd --add-service=https –permanent # firewall-cmd --reload
Akses oVirt engine Web Administration Portal melalui browser dengan cara mengetikkan IP Address komputer server engine pada address bar browser.
35
4.1.2.2 Instalasi Sistem Operasi pada setiap Server Node
Masing-masing node dari node 1 sampai dengan node 4 di install sistem operasi oVirt.
Node adalah komputer-komputer yang secara fisik yang berbeda akan digabungkan
menjadi 1 (satu) secara sistem dengan oVirt. OVirt node akan bertindak sebagai
Hypervisor atau yang disebut Virtual Machine Monitor yang berfungsi untuk
menjalankan beberapa operating system didalam host operating system tersebut. Tugas
hypervisor adalah untuk mengatur setiap operating system sesuai gilirannya agar tidak
mengganggu operating system lain yang sedang berjalan. Hypervisor tersebut mengatur beberapa sistem sekaligus pada saat yang bersamaan. Proses instalasi operating system pada setiap node sebagai berikut:
• Booting menggunakan installer oVirt • Memilih jenis bahasa yang akan digunakan • Mengatur Localization, Software, dan System • Memilih lokasi yang diinginkan
• Memulai proses instalasi • Membuat password root • Starting Operating System
4.1.2.3 Konfigurasi Server Node
Pada bagian ini masing-masing node di-integrasikan ke engine sehingga terbentuk sebuah server virtual dari beberapa server fisik. Spesifikasi seperti storage atau penyimpanan dan memory atau RAM dari masing-masing node akan digabungkan menjadi 1 (satu). Masing-masing node di konfigurasi hostname, IP Address, Port, dan
User.
Konfigurasi pada masing-masing node yang diterapkan adalah: 1. Menambah node-1 ke engine.
Host Cluster : default Name : node1.tesis IP : 10.10.10.2/27 SSH Port : 22
2. Menambah node-2 ke engine. Host Cluster : default
Name : node2.tesis IP : 10.10.10.3/27 SSH Port : 22
User : root
3. Menambah node-3 ke engine. Host Cluster : default
Name : node3.tesis IP : 10.10.10.4/27 SSH Port : 22
User : root
4. Menambah node-4 ke engine. Host Cluster : default
Name : node4.tesis IP : 10.10.10.5/27 SSH Port : 22
User : root
Hasil dari host, node-node yang sudah di add ke engine.
Gambar 4.4 Node yang sudah di add ke engine 6. Menginstall NFS Storage pada masing-masing oVirt node
NFS (Network File System) adalah protocol sharing yang digunakan untuk berbagi storage atau resource yang disalurkan melalui network tanpa melihat
37
client. Mekanisme Network File System ini adalah file terdistribusi, yang
umumnya diimplementasikan dalam lingkungan komputasi yang sumber dayanya terpusat.
[root@nfs ~]# groupadd –g 36 kvm
[root@nfs ~]# useradd –u 36 –g kvm –M –d / -s /sbin/nologin vdsm [root@nfs ~]# mkdir –p /var/lib/ovirt/data
[root@nfs ~]# chown vdsm:kvm /var/lib/ovirt/data
[root@nfs ~]# vi /etc/exports.d/ovirt-engine-data-domain.exports
# set share for Data Doomain (replace ACL settings for your environment) /var/lib/ovirt/data 10.0.0.0/27(rw)
[root@nfs ~]# systemctl restart rpc-statd nfs-server
7. Menginstall ISO Domain pada masing-masing ovirt node
ISO (format untuk image) domain pada ovirt adalah host yang berisi storage ISO yang digunakan untuk menginstall operating system dalam bentuk ISO. Sistem operasi dalam bentuk ISO yang digunakan adalah centOS 7, ISO ini diinstall pada ovirt node-1.
4.1.2.4 Konfigurasi Virtual Machine
Virtual machine yang di-install sebanyak 7 (tujuh) dengan spesifikasi sebagai berikut:
1. Proxy-1 Hardisk : 40 GB RAM : 1 GB IP : 10.10.10.6/27 2. Proxy-2 Hardisk : 40 GB RAM : 1 GB IP : 10.10.10.7/27 3. Proxy-3 Hardisk : 40 GB RAM : 1 GB IP : 10.10.10.8/27 4. Proxy-4 Hardisk : 40 GB RAM : 1 GB IP : 10.10.10.9/27
4.1.2.5 Install Squid Proxy
Di masing-masing virtual machine proxy-1, virtual machine proxy-2, virtual machine proxy-3, dan virtual machine proxy-4 di install squid. Proses instalasi sebagai berikut:
# yum –y update # yum –y install squid # systemctl start squid # system enable squid
4.1.2.6 Install dan Konfigurasi DNS (Domain Name Server) dan Reverse Proxy
DNS (Domain Name Server) berfungsi sebagai penerjemah IP Address menjadi
hostname ataupun sebaliknya. Hal ini membuat pengguna internet menjadi lebih mudah