Analisis dan perbandingan distro linux untuk server web konfigurasi default
i
ANALISIS DAN PERBANDINGAN DISTRO LINUX UNTUK
SERVER WEB
KONFIGURASI
DEFAULT
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Disusun oleh :
Fidelis Adi Wicaksono
095314002
HALAMAN JUDUL
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
(2)
ii
ANALYSIS AND COMPARISON OF DISTRO LINUX FOR
WEB SERVER DEFAULT CONFIGURATION
THESIS
Presented as Partial Fulfillment of the Requirements
to Obtain Sarjana Komputer Degree in Informatic Engineering Department
Created By :
Fidelis Adi Wicaksono
095314002
HALAMAN JUDUL (INGGRIS)
INFORMATICS ENGINEERING STUDY PROGRAM INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
YOGYAKARTA 2013
(3)
iii
(4)
iv
(5)
v
HALAMAN PERSEMBAHAN
Hidup itu pilihan,
setiap pilihan yang kamu pilih ada konsekuensinya.
Lawan terberat adalah dirimu sendiri…
Peduli pada sesama,
diri sendiri dan lingkungan…
Hasil jerih payah ini saya persembahkan bagi :
Tanah Air tercinta Keluarga
Sahabat Almamater
dan waktu yang terkadang saya sia-siakan…
(6)
vi
Terima kasih teman atas hangatnya bangku kuliah…
Mirella – Dian – Astri – Ade Satya – Anton Brahu – Wienda – Rosi – Pujo – Cosmas – Adit Malau - Jeanot – Jenny – Chiputera – Puji – Ayu
Febri – Mita – Anis
Ade Ignatio – Gita – Ratna – Gunung – Setyo Beny – Fiona – Ageng – Unggul – Denny
Alvin – Wayan – Endrik – Bion – Eki Ardha – Audris – Tinus – Aden – Grace Tomi – Dika – Ino – Andi – Kiki – Jerry Nico – Robert – Yosi – Risma – Ruru – Aan Tri – Annisa – Ina – Wiwin – Cahyo – Elisa
(7)
vii
(8)
viii
ABSTRAK
Website merupakan salah satu fasilitas di internet berupa sekelompok halaman web (web page), gambar, video dan data digital yang disediakan di satu atau beberapa web server.
Web server adalah sebuah aplikasi yang memiliki tanggung jawab untuk menerima request HTTP dari sisi client yang dikenal dengan web browser.Selain itu, web server juga melayani client dengan menyediakan response HTTP berupa konten data dalam bentuk halaman web.
Sebuah server memberikan layanan-layanan yang dibutuhkan oleh client, salah satunya adalah layanan web (web server). Untuk dapat memberikan respon yang baik dalam memenuhi permintaan request dari client maka diperlukan server
yang didukung dengan processor yang bersifat scalable, memori yang besar, dan sistem operasi khusus untuk server. Sistem operasi yang biasa digunakan untuk
server adalah linux.
Sistem operasi berfungsi untuk mengatur banyaknya request dari client
dan ketersediaan sumber daya yang ada sekaligus sebagai perantara antara aplikasi dengan hardware. Peningkatan jumlah request dari client secara signifikan diharapkan mampu diimbangi dengan kinerja server dalam memberikan response terutama pada layanan web.
Beberapa varian linux (distro linux) akan diuji pada server dengan beban
request yang meningkat secara signifikan. Sehingga bisa didapatkan distro linux yang mampu untuk memberikan layanan terhadap request yang meningkat secara signifikan dengan konfigurasi web server standar.
(9)
ix
ABSTRACT
Website is one of the internet facilities and it is a group of web page, picture, video, and digital data, which are provided in one or some of web server.
Web server is an application which has responsibility to receive HTTP request from a client side known as the web browser. In addition, the web server
also serves the client by providing response HTTP in the form of data content of the web page.
A server provides service which is needed by the client. One of the needed service is web server. To give a good response in filling the client‟s request, the server should be supported by a scalable processor, a large memory, and a special operating system for the server. The usual operation system which is used to the
server is linux.
The operating system is used to organize the request from the client and available resources; and it used as a bridge between the application and hardware. The increase of the request is expected to be balanced with the server
performance in giving response especially in web service.
Some of distro linux would be tested by request load which increases significantly. Thus, it can be got a distro linux which is able to give service to the increased request significantly with standard web server configuration.
(10)
x
(11)
xi
KATA PENGANTAR
Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa, karena atas berkat dan rahmat-Nya penulis dapat menyelesaikan tugas akhir yang berjudul “Analisis dan Perbandingan Distro Linux Untuk Server Web
Konfigurasi Default”. Tugas akhir ini ditulis sebagai salah satu syarat memperoleh gelar Sarjana Komputer program studi Teknik Informatika, Fakultas Sains dan Teknologi Universitas Sanata Dharma.
Penulis mengucapkan banyak terima kasih kepada semua pihak yang turut memberikan motivasi, semangat dan bantuan dalam bentuk apapun sehingga tugas akhir ini dapat terselesaikan dengan baik :
1. Tuhan Yang Maha Esa yang selalu memberikan kesehatan, rezeki dan kesabaran selama penulis menyelesaikan tugas akhir ini.
2. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku Dekan Fakultas Sains dan Teknologi.
3. Ibu Ridowati Gunawan, S.Kom., M.T., selaku Ketua Program Studi Teknik Informatika.
4. Bapak Henricus Agung Hernawan, S.T., M.Kom. dan Bapak Stephanus Yudianto Asmoro, S.T., M.Kom. selaku dosen penguji yang memberikan kritik dan saran terhadap tugas akhir ini.
5. Bapak Iwan Binanto, S.Si., M.Cs. selaku dosen pembimbing akademik sekaligus dosen pembimbing tugas akhir penulis yang selalu memberikan semangat, kritik dan saran selama penulis mengerjakan tugas akhir ini. “Gek ndang rampung…”, begitu pesannya.
(12)
xii
6. Seluruh dosen yang telah mendidik dan memberikan ilmu pengetahuan selama penulis menempuh studi di Universitas Sanata Dharma Yogyakarta.
7. Staff sekretariat dan laboratorium komputer yang membantu dalam menyelesaikan tugas akhir.
8. Bapak guru Drs. F. Jokowismanto, Ibu guru Dra. Yulita Setia Ernawati dan mahasiswa baru Christi Maria Saraswati yang selalu mengingatkan dan memberi semangat kepada penulis.
9. Mas Susilo, yang menjadi partner penulis di Laboratorium Komputer Dasar. Terima kasih atas ilmu dan pinjaman komputernya!
10.Teman-teman SaOS (Sanata Dharma Open Source) atas sharing dan kebersamaannya selama ini. Putar dulu gan!!
11.Keluarga UKF Basket FST, tetap rendah hati, attitude nomor 1. UYE, Play Hard!!
12.Keluarga Teknik Informatika Universitas Sanata Dharma, terima kasih atas dinamikanya.
13.Pihak-pihak lain yang turut membantu penulis dalam menyelesaikan tugas akhir ini, yang tidak dapat disebutkan satu persatu.
Penulis menyadari bahwa tugas akhir ini masih memiliki banyak kekurangan. Oleh karena itu diperlukan saran dan kritik yang penulis harapkan dalam memperbaiki tugas akhir ini. Akhir kata, penulis berharap semoga tugas akhir ini bisa memberikan manfaat bagi semua pihak di masa yang akan datang. Terima Kasih.
Yogyakarta, … Januari 2014
(13)
xiii
DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN JUDUL (INGGRIS) ... ii
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN... iv
HALAMAN PERSEMBAHAN ... v
PERNYATAAN KEASLIAN KARYA ... vii
ABSTRAK ... viii
ABSTRACT ... ix
LEMBAR PERNYATAAN PERSETUJUAN ... x
KATA PENGANTAR ... xi
DAFTAR ISI ... xiii
DAFTAR TABEL ... xvii
DAFTAR GAMBAR ... xviii
BAB I ... 1
PENDAHULUAN ... 1
1.1. Latar Belakang Masalah... 1
1.2. Rumusan Masalah ... 3
1.3. Tujuan Penelitian ... 3
1.4. Luaran yang diharapkan ... 3
1.5. Batasan Masalah ... 4
1.6. Metodologi Penelitian ... 4
1.7. Sistematika Penulisan ... 6
BAB II ... 7
LANDASAN TEORI ... 7
2.1. Sistem Operasi ... 7
(14)
xiv
2.1.2. Struktur Sistem Operasi ... 8
2.1.3. Pelayanan Sistem Operasi ... 8
2.1.4. Proses ... 10
2.1.5. Thread ... 11
2.1.6. Kernel ... 13
2.2 Linux ... 15
2.2.1 Pengertian Linux ... 15
2.2.2 Distro Linux ... 15
2.3. Server ... 16
2.3.1. Pengertian Server ... 16
2.3.2. Layanan ... 17
2.3.3. Sistem Operasi Server ... 18
2.4. Web Server ... 19
2.4.1. Pengertian Web Server ... 19
2.4.2. Prinsip dan Cara Kerja ... 20
2.4.3. Apache ... 22
2.5. Hypertext Transfer Protocol (HTTP) ... 24
2.5.1. Pengertian Hypertext Transfer Protocol (HTTP) ... 24
2.5.2. HTTP version ... 24
2.5.2.1. HTTP/0.9... 24
2.5.2.2. HTTP/1.0... 25
2.5.2.3. HTTP/1.1... 25
2.5.3. Metode Umum HTTP ... 26
2.5.4. Kode Status Respon HTTP ... 27
2.6. TCP : Transmission Control Protocol ... 33
2.6.1. Pengertian TCP ... 33
2.6.2. TCP Header ... 33
(15)
xv
2.7. Jaringan Komputer ... 37
2.7.1 Pengertian Jaringan Komputer ... 37
2.7.2. Jenis Jaringan Komputer ... 38
2.7.3. Topologi Jaringan ... 39
2.8. Alat Ukur ... 40
2.8.1. Pengertian Pengukuran ... 40
2.8.2 Webserver Stress Tool ... 41
2.8.3 Performance, Load dan Stress Testing ... 41
BAB III ... 43
PERANCANGAN ... 43
3.1. Perencanaan Awal ... 43
3.2. Topologi Jaringan ... 44
3.3. Pemilihan Distro Linux ... 45
3.4. Rancangan Server ... 47
3.4.1 Spesifikasi ... 47
3.4.2 Layanan Web ... 47
3.5. Client ... 49
3.5.1. Spesifikasi ... 49
3.5.2. Webserver Stress Tool ... 49
3.6. Skenario pengujian dan Kehandalan ... 50
3.6.1 Skenario pengujian ... 50
3.6.2 Kehandalan ... 51
BAB IV ... 52
IMPLEMENTASI & ANALISIS... 52
4.1. Instalasi Server ... 52
4.1.1. Instalasi Distro Linux ... 52
4.1.2. Setting IP Address ... 52
(16)
xvi
4.2. Webserver Stress Tool ... 57
4.3. Hasil Pengujian ... 60
4.4. Analisis Pengujian ... 66
4.4.1. Skenario menggunakan memori 2 GB ... 66
4.4.1.1. Beban 300 ... 66
4.4.1.2. Beban 600 ... 73
4.4.1.3. Beban 900 ... 78
4.4.1.4. Beban 1.200 ... 84
4.4.2. Skenario menggunakan memori 4 GB ... 89
4.4.2.1. Beban 300 ... 89
4.4.2.2. Beban 600 ... 94
4.4.2.3. Beban 900 ... 100
4.4.2.4. Beban 1.200 ... 106
4.5. Analisis Hasil ... 112
BAB V ... 120
KESIMPULAN & SARAN ... 120
5.1. Kesimpulan ... 120
5.2. Saran ... 121
DAFTAR PUSTAKA ... 122
LAMPIRAN I ... 124
PERCOBAAN AWAL ... 124
LAMPIRAN II ... 126
(17)
xvii
DAFTAR TABEL
Tabel 2. 1 : Tabel ukuran field pada TCP Header... 34
Tabel 3. 1 : Spesifikasi client dan server ... 43
(18)
xviii
DAFTAR GAMBAR
Gambar 2. 1 : Diagram status proses ... 11
Gambar 2. 2 : Proses single thread dan multithread ... 12
Gambar 2. 3 : Presentase penggunaan distro linux menurut W3Techs ... 19
Gambar 2. 4 : Elemen web server ... 20
Gambar 2. 5 : Cara kerja web server ... 21
Gambar 2. 6 : Presentase penggunaan web server menurut W3Techs... 23
Gambar 2. 7 : Enkapsulasi TCP pada datagram IP ... 33
Gambar 2. 8 : TCP Header ... 34
Gambar 2. 9 : TCP State Transtiton Diagram ... 36
Gambar 3. 1 : Topologi jaringan client dan server ... 44
Gambar 3. 2 : Pemilihan distro linux ... 46
Gambar 3. 3 : Tabel partisi pada harddisk ... 47
Gambar 3. 4 : Halaman website ... 48
Gambar 3. 5 : Tampilan awal Webserver Stress Tools ... 49
Gambar 4. 1 : Tampilan website ketika webserver sudah diaktifkan ... 57
Gambar 4. 2 : Halaman utama dari Webserver Stress Tool ... 57
Gambar 4. 3 : Tipe pengujian yang ada pada Webserver Stress Tool ... 58
Gambar 4. 4 : Jumlah user yang akan disimulasikan beserta Click Delay ... 58
Gambar 4. 5 : Menjalankan simulasi pada server yang dituju ... 59
Gambar 4. 6 : Simulasi berjalan untuk melakukan request pada server ... 59
Gambar 4. 7 : Grafik Click Times and Errors ... 61
Gambar 4. 8 : Grafik Click Time, Hit/s, Users/s ... 62
(19)
xix
Gambar 4. 10 : Grafik Spectrum of Clicks Times ... 63
Gambar 4. 11 : Grafik Server and User Bandwidth ... 64
Gambar 4. 12 : Memori yang digunakan oleh server ... 65
Gambar 4. 13 : Grafik Click Times & Errors Slackware ... 66
Gambar 4. 14 : Grafik Server & User Bandwidth Centos ... 67
Gambar 4. 15 : Grafik Open Requests & Transferred Data Slackware ... 68
Gambar 4. 16 : Grafik Open Requests & Transferred Data Centos ... 68
Gambar 4. 17 : Grafik Spectrum of Click Times Open Suse ... 69
Gambar 4. 18 : Grafik Spectrum of Clicks Times Ubuntu ... 70
Gambar 4. 19 : Penggunaan memori Open Suse dan Centos ... 71
Gambar 4. 20 : Grafik penggunaan memori Open Suse ... 72
Gambar 4. 21 : Grafik penggunaan memori Centos ... 72
Gambar 4. 22 : Grafik Click Times & Errors Ubuntu... 73
Gambar 4. 23 : Grafik Server & User Bandwidth Ubuntu ... 74
Gambar 4. 24 : Grafik Open Requests & Transferred Data Centos ... 75
Gambar 4. 25 : Grafik Spectrum of Clicks Times Slackware ... 76
Gambar 4. 26 : Penggunaan memori Open Suse dan Ubuntu ... 77
Gambar 4. 27 : Grafik penggunaan memori Open Suse ... 78
Gambar 4. 28 : Grafik penggunaan memori Ubuntu... 78
Gambar 4. 29 : Grafik Click Times & Errors Ubuntu... 79
Gambar 4. 30 : Grafik Server & User Bandwidth Centos ... 80
Gambar 4. 31 : Grafik Open Requests & Transferred Data Slackware ... 80
Gambar 4. 32 : Grafik Spectrum of Clicks Times Slackware ... 81
Gambar 4. 33 : Penggunaan memori Slackware dan Centos ... 82
Gambar 4. 34 : Grafik penggunaan memori Slackware ... 83
Gambar 4. 35 : Grafik penggunaan memori Centos ... 83
Gambar 4. 36 : Grafik Click Times & Errors Open Suse ... 84
(20)
xx
Gambar 4. 38 : Grafik Open Requests & Transferred Data Ubuntu ... 85
Gambar 4. 39 : Grafik Spectrum of Click Times Slackware ... 86
Gambar 4. 40 : Penggunaan memori Centos dan Slackware ... 87
Gambar 4. 41 : Grafik penggunaan memori Centos ... 88
Gambar 4. 42 : Grafik penggunaan memori Slackware ... 88
Gambar 4. 43 : Grafik Click Times & Errors Ubuntu... 89
Gambar 4. 44 : Grafik Server & User Bandwidth Open Suse ... 90
Gambar 4. 45 : Grafik Open Requests & Transferred Data Ubuntu ... 91
Gambar 4. 46 : Grafik Spectrum of Click Times Centos ... 92
Gambar 4. 47 : Penggunaan memori Centos dan Open Suse ... 93
Gambar 4. 48 : Grafik penggunaan memori Centos ... 93
Gambar 4. 49 : Grafik penggunaan memori Open Suse ... 94
Gambar 4. 50 : Grafik Click Times & Errors Ubuntu... 95
Gambar 4. 51 : Grafik Server & User Bandwidth Centos ... 95
Gambar 4. 52 : Grafik Open Requests & Transferred Data Open Suse ... 96
Gambar 4. 53 : Grafik Spectrum of Click Times Open Suse ... 97
Gambar 4. 54 : Penggunaan memori Centos dan Ubuntu ... 98
Gambar 4. 55 : Grafik penggunaan memori Centos ... 99
Gambar 4. 56 : Grafik penggunaan memori Ubuntu... 99
Gambar 4. 57 : Grafik Click Times & Errors Centos ... 100
Gambar 4. 58 : Grafik Server & User Bandwidth Ubuntu ... 101
Gambar 4. 59 : Grafik Open Requests & Transferred Data Open Suse ... 102
Gambar 4. 60 : Grafik Spectrum of Click Times Slackware ... 103
Gambar 4. 61 : Penggunaan memori Open Suse dan Ubuntu ... 104
Gambar 4. 62 : Grafik penggunaan memori Open Suse ... 105
Gambar 4. 63 : Grafik penggunaan memori Ubuntu... 105
Gambar 4. 64 : Grafik Click Times & Errors Ubuntu... 106
(21)
xxi
Gambar 4. 66 : Grafik Open Requests & Transferred Data Open Suse ... 108
Gambar 4. 67 : Grafik Spectrum of Click Times Slackware ... 109
Gambar 4. 68 : Penggunaan memori Centos dan Open Suse ... 110
Gambar 4. 69 : Grafik penggunaan memori Centos ... 111
Gambar 4. 70 : Grafik penggunaan memori Open Suse ... 111
Gambar 4. 71 : Penggunaan memori Open Suse dan Ubuntu ... 113
Gambar 4. 72 : Grafik penggunaan memori Open Suse ... 114
Gambar 4. 73 : Grafik penggunaan memori Ubuntu... 115
Gambar 4. 74 : Penggunaan memori Centos dan Slackware ... 116
Gambar 4. 75 : Grafik penggunaan memori Centos ... 117
(22)
1
BAB I PENDAHULUAN
1.1. Latar Belakang Masalah
Perkembangan teknologi informasi saat ini tidak terlepas dari peran
internet sebagai tulang punggung utamanya. Salah satu layanan yang sering disediakan adalah website. Website merupakan salah satu fasilitas di internet
berupa sekelompok halaman web (web page), gambar, video, dan data digital yang disediakan di satu atau beberapa web server. Perkembangan website sejalan dengan perkembangan web server dalam memberikan layanan untuk menyimpan informasi yang terdapat pada website.
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. Web server berjalan pada sebuah sistem operasi. Sistem operasi berfungsi untuk mengontrol dan mengkoordinasi penggunaan hardware di antara berbagai bentuk aplikasi dan user.
Sebuah server memberikan layanan-layanan yang dibutuhkan oleh client. Untuk memberikan response yang baik dalam memenuhi permintaan request dari
client maka diperlukan server yang didukung dengan processor yang bersifat
(23)
2
operasi jaringan. Sistem operasi jaringan adalah sistem operasi komputer yang
sering dipakai 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 berbasis linux. Beberapa distro linux yang populer digunakan untuk server antara lain debian, centos, dan ubuntu.
Menurut Engelschall (1998), 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, permintaan request secara signifikan dari client dapat mempengaruhi kinerja server. Sistem operasi berfungsi untuk mengatur banyaknya request dari client dengan ketersediaan sumber daya yang ada sekaligus sebagai perantara antara aplikasi dengan
hardware. Peningkatan jumlah request dari client secara signifikan diharapkan mampu diimbangi dengan kinerja server dalam memberikan response terutama pada layanan dalam mengakses web server.
(24)
1.2. Rumusan Masalah
Masalah yang ingin diselesaikan berdasarkan latar belakang yang sudah
disampaikan adalah bagiamana menentukan distro linux untuk server agar sesuai dengan sumber daya yang tersedia dan mampu memberikan layanan terhadap
permintaan request yang meningkat dari client secara signifikan terutama pada layanan web.
1.3. Tujuan Penelitian
Mencari distro linux untuk server yang dapat diuji kehandalannya ketika sumber daya yang tersedia digunakan untuk memberikan layanan terhadap request
dari client yang meningkat secara signifikan, terutama pada layanan web dengan konfigurasi standar.
1.4. Luaran yang diharapkan
Harapan dari hasil kegiatan ini adalah memberikan sebuah distro linux
untuk server yang teruji kehandalannya ketika sumber daya yang tersedia dapat melayani request dari client yang meningkat secara signifikan dengan konfigurasi
(25)
1.5. Batasan Masalah
Ruang lingkup dan batasan masalah yang dikaji pada penelitan dalam
memilih distro linux untuk server antara lain :
1. Menggunakan jaringan komputer skala kecil.
2. Tidak membandingkan web server yang berbeda, hanya menggunakan web server apache.
3. Membandingkan sistem operasi khusus untuk server berbasis linux dengan versi kernel di atas 2.2
4. Lebih difokuskan pada layanan web serta dampaknya terhadap distro linux yang digunakan untuk server.
1.6. Metodologi Penelitian
1. Studi Pustaka
Mencari referensi yang berasal dari berbagai sumber yang
ada seperti dari buku, jurnal ilmiah dan artikel internet terutama yang berkaitan dengan topik permasalahan yang akan diteliti.
Referensi inilah yang akan digunakan sebagai dasar dari
pengembangan skripsi yang akan dibuat.
(26)
Metode perancangan yang akan dilakukan antara lain:
1. Perancangan topologi jaringan skala kecil antara client dan
server.
2. Pemilihan distro linux khusus untuk server yang akan digunakan.
3. Menentukan spesifikasi hardware yang akan digunakan.
4. Konfigurasi layanan web yang dipasang pada masing-masing distro linux.
5. Instalasi apliaksi Webserver Stress Tool pada sisi client.
3. Implementasi
Melakukan pengujian terhadap server khususnya distro linux yang digunakan pada server dengan meningkatkan jumlah
request terhadap server. Peningkatan jumlah request secara signifikan berasal dari Webserver Stress Tool.
4. Analisa Hasil
Melakukan analisa terhadap hasil implementasi yang sudah
dilakukan. Analisa dengan berlandaskan pada teori-teori yang
(27)
1.7. Sistematika Penulisan
Sistematika penulisan pada tulisan ini terdiri dari 5 bab :
BAB I PENDAHULUAN
Bab ini mengungkap latar belakang masalah, rumusan masalah,
tujuan penelitian, luaran yang diharapkan, batasan masalah, dan
sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini menjelasakan dan menguraikan teori-teori yang digunakan
sebagai pedoman penelitian.
BAB III PERANCANGAN
Perancangan yang akan dilakukan secara rinci beserta metode yang
akan dilakukan.
BAB IV IMPLEMENTASI DAN ANALISIS
Menjelaskan mengenai tahapan dalam melakukan pengujian,
dilanjutkan dengan analisa serta evaluasi terhadap hasil pengujian yang
sudah diimplementasikan.
BAB V KESIMPULAN DAN SARAN
Berisi kesimpulan pengerjaan tugas akhir dan saran untuk
(28)
7
BAB II
LANDASAN TEORI
2.1. Sistem Operasi
2.1.1. Pengertian Sistem Operasi
Sebelum membahas sistem operasi, terlebih dahulu dibahas tentang
sistem komputer. Sistem komputer dapat dibagi menjadi 4 komponen,
yaitu :
1. Hardware, menyediakan sumber daya komputer. Misal CPU,
Memori, I/O device.
2. Sistem operasi, mengontrol dan mengkoordinasikan penggunaan
hardware di antara berbagai aplikasi dan user.
3. Program-program aplikasi, mendefinisikan cara di mana sumber
daya sistem digunakan untuk memecahkan masalah penghitungan
(computing) user. Contoh : word processors, sistem database,
compilers.
4. User-user, mendefinisikan manusia, mesin atau komputer lain.
Menurut Silberschatz (2005), sistem operasi merupakan sebuah
program untuk mengatur hardware sebuah komputer. Sistem operasi muncul dengan alasan sebagai cara agar penghitungan (computing) lebih
(29)
berdaya guna. Tujuan dasar dari sistem komputer adalah mengeksekusi
program dan memecahkan permasalahan user lebih mudah.
2.1.2. Struktur Sistem Operasi
Sistem operasi menyediakan lingkungan di mana program dapat
dieksekusi. Salah satu aspek terpenting sistem operasi adalah kemampuan
untuk melakukan multiprogramming. Multiprogramming meningkatkan pemanfaatan CPU dengan mengorganisir job (kode atau data) sehingga CPU selalu mempunyai satu job untuk diproses (mengurangi idle).
Time Sharing (multitasking) adalah perluasan logical dari
multiprogramming. Dalam sistem ini CPU mengeksekusi banyak job
dengan me-switch diantaranya, tetapi switch tersebut dilakukan sesering mungkin, sehingga user dapat berinteraksi pada setiap program yang berjalan.
2.1.3. Pelayanan Sistem Operasi
Pelayanan sistem operasi menyediakan beberapa fungsi yang
sangat membantu user, yaitu :
1. User interface, bentuk-bentuk user interface yang umum
(30)
a) Command Line Interface (CLI), menggunakan perintah dalam bentuk teks dan sebuah metode untuk memasukinya.
b) Batch Interface, di mana perintah dan directive
pengontrolnya dimasukkan ke dalam satu file yang akan dieksekusi.
c) Graphical User Interface (GUI), di mana interface ini berbentuk grafik.
2. Program execution, sistem harus dapat memanggil program ke memori dan menjalankannya.
3. I/O Operation, program harus dapat mengatur piranti input dan
output.
4. File-System manipulation, program dapat melakukan baca/tulis, pengubahan, penghapusan file.
5. Communications, suatu proses terkadang memerlukan informasi dari proses yang lainnya. Komunikasi juga dapat dilakukan melalui
satu mesin komputer atau mesin komputer lain melalui jaringan.
6. Error detection, sistem operasi mampu melakukan deteksi
kesalahan yang disebabkan oleh perangkat keras maupun perangkat
(31)
7. Resource allocation, di mana beberapa user dan beberapa job
berjalan bersama, sumber daya harus dialokasikan.
8. Accounting, menjaga jalur di mana user menggunakan berapa dan apa jenis sumber daya komputer tersebut.
9. Protection and security, perlindungan sangat diperlukan sistem dari berbagai gangguan yang berasal dari luar maupun di dalam sistem
tersebut.
2.1.4. Proses
Menurut Silberschatz (2005), proses tidak hanya sekedar suatu
kode program, melainkan meliputi beberapa aktivitas yang bersangkutan
seperti program counter dan stack. Sebuah proses juga melibatkan stack
yang berisi data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang menyimpan variabel-variabel global.
Menurut Tanenbaum (2001), proses adalah sebuah program yang
dieksekusi yang mencakup program counter, register, dan variabel di dalamnya. Proses yang dieksekusi mempunyai lima status yang terdiri
dari:
1. New : Pembentukan suatu proses.
(32)
3. Waiting : Proses menunggu untuk beberapa event yang terjadi.
4. Ready : Proses menunggu untuk dialirkan ke pemroses (processor).
5. Terminated : Proses telah selesai dieksekusi.
Gambar 2. 1 : Diagram status proses
Sebuah proses dapat memiliki karakteristik sebagai unit of resource ownership atau unit of dispatching. Unit of resource ownership
akan mengabstraksi alamat virtual untuk menyimpan proses image dan dari waktu ke waktu, proses diberi memori utama ditambah kendali
terhadap sumber daya lain. Biasa disebut dengan proses atau task.
2.1.5. Thread
Unit of dispatching akan memiliki satu jalur eksekusi (trace). Eksekusi ini mungkin bergantian (interleaving) dengan proses lain. Sebuah proses memiliki status proses dan prioritas penjadwalan yang
(33)
penjadwalan processor. Biasa disebut dengan thread atau lightweight process.
Thread terdiri dari dua bentuk, yaitu user thread dan kernel thread.
User thread adalah thread yang diatur dengan menggunakan pustaka level thread. Sedangkan kernel thread adalah thread yang didukung oleh kernel.
Proses merupakan sebuah program yang mengeksekusi thread
tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Maka dari itu dikembangkan
sebuah konsep agar memungkinkan sebuah proses untuk mengeksekusi
multi-threads. Salah satu contoh aplikasi yang perlu menjalankan beberapa tugas serupa adalah web server.
Gambar 2. 2 : Proses single thread dan multithread
(34)
1. Responsif, menjadi tetap responsif meski sebagian dari program
sedang melakukan operasi atau tugas kepada pengguna.
2. Berbagi sumber daya, mengizinkan sebuah aplikasi untuk
mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
3. Ekonomis, lebih ekonomis dalam pembuatan sebuah proses.
4. Utilisasi arsitektur multiprocessor, setiap thread dapat berjalan secara paralel di atas processor yang berbeda.
2.1.6. Kernel
Kernel adalah komponen sentral dari sistem operasi yang mengatur hal-hal seperti interrupt handler (layanan interupsi), process scheduler
(pembagian proses dalam processor), memory management, input/output, dan sebagainya. Dengan kata lain bisa dikatakan bahwa kernel adalah
jembatan antara hardware dengan software.
Ada 2 cara untuk membangun sistem operasi, yaitu :
1. Cara tradisional, membuat kernel monolitis, yaitu semua fungsi disediakan oleh kernel, dan menjadikan kernel program yang besar dan kompleks.
(35)
2. Cara modern, menggunakan kernel mikro, yaitu dengan mengimplementasikan fitur-fitur yang diperlukan saja, bisa
disesuaikan dengan kebutuhan sistem operasi.
Setiap distro linux memiliki versi kernel yang kemungkinan berbeda satu dengan lainnya. Format dari sebuah kernel linux bertuliskan X.Y.Z yang terdiri dari 3 bagian yaitu Major Number (X), Minor Number
(Y), dan Revision Number (Z) yang masing-masing terpisah oleh tanda titik.
Major Number, terletak pada awal penulisan kode. Pada format penulisan dilambangkan dengan X. Angka pada major number akan jarang
berubah untuk waktu yang lama. Jika terjadi perubahan pada angka ini,
menandakan adanya perubahan besar atau upgrade terhadap kernel.
Minor Number, terletak pada tengah penulisan kode. Pada format penulisan dilambangkan dengan Y. Minor Number bisa berupa angka ganjil atau angka genap. Angka ganjil mengandung experimental code dan fitur terbaru yang ditambahkan oleh developernya (sedang dalam tahap
pengembangan). Sedangkan angka genap menandakan kernel yang stabil dan ketika dirilis tidak ada penambahan apapun.
Revision Number, terletak pada akhir penulisan kode. Pada format penulisan dilambangkan dengan Z. Revision Number menunjuk pada nomor revisi yang menandakan current patch versi tersebut. Pada tahap pengembangan, versi baru bisa dirilis hingga dua kali seminggu.
(36)
2.2 Linux
2.2.1 Pengertian Linux
Linux adalah sebuah program open source gratis di bawah lisensi GNU (GNU‟s Not Unix) yang merupakan turunan dari Unix yang dapat dijalankan di berbagai macam platform perangkat keras. Linux didesain oleh Linus Torvalds yang terinspirasi dengan lisensi GNU, pengguna
dapat memperoleh kode sumbernya (source code), mengubah kode sumber tersebut dan mengkopi sebanyak yang diinginkan.
Kernel linux membentuk inti dari sistem operasi linux yang menyediakan semua fungsi yang diperlukan untuk menjalankan proses dan
menyediakan servis sistem untuk memberikan pengaturan dan proteksi
akses ke sumber daya perangkat keras.
2.2.2 Distro Linux
Distro atau distribusi linux merupakan kernel linux dan kumpulan aplikasi-aplikasi linux yang dipaketkan oleh perusahaan, organisasi atau
personal yang tertarik dengan linux. Pemaketan dilakukan berdasarkan
kebutuhan. Saat ini sudah banyak sekali distro turunan, namun distro
induk/besar yang terkenal antara lain adalah redhat, debian, dan slackware.
Distro induk memiliki sistem manajemen paket yang berbeda-beda
ditandai dengan ekstensi file paket, misalnya debian memiliki ekstensi
(37)
*.tgz/*txz. Ekstensi ini akan tetap digunakan oleh turunan dari distro induk
tersebut. Misal ubuntu merupakan turunan dari debian, maka ekstensi yang
digunakan adalah *.deb. Selain itu tiap-tiap distro memiliki dependensi
(ketergantungan) terhadap package lain. Contohnya meskipun sama-sama berekstensi .deb, apabila dependensinya tidak terpenuhi maka tidak dapat
diinstal. Perbedaan versi dan penamaan package juga dapat menjadi
masalah tersendiri.
2.3. Server
2.3.1. Pengertian Server
Server adalah komputer yang “melayani” sesuatu. Server
umumnya dapat menangani permintaan client dalam jumlah yang banyak secara simultan.
Server merupakan sebuah sistem komputer yang menyediakan
jenis layanan tertentu dalam sebuah jaringan komputer. Server didukung dengan processor bersifat scalable dan RAM yang besar, juga dilengkapi sistem operasi jaringan yang memiliki berbagai macam layanan yang dapat
diakses oleh client.
Terdapat dua jenis server, yaitu dedicated server dan undedicated server. Pada dedicated server hanya tersedia satu layanan saja. Sedangkan
undedicated server memiliki beberapa layanan di dalamnya, sehingga hanya digunakan pada jaringan yang tidak terlalu besar.
(38)
2.3.2. Layanan
Berikut ini merupakan layanan yang secara umum terdapat pada
server, antara lain :
1. DHCP server (Dynamic Hosting Configuration Protocol),
merupakan pemberian dan pengalokasian alamat IP pada jaringan
secara otomatis. Sehingga client yang akan berkomunikasi akan mendapatkan alamat IP secara otomatis.
2. DNS server (Domain Name System), merupakan sistem yang menyimpan informasi tentang nama host maupun nama domain dalam bentuk basis data terdistribusi di dalam jaringan komputer.
3. Web server, salah satu layanan dari server yang berfungsi untuk melayani permintaan web pages oleh client melalui protokol HTTP atau HTTPS dan memberikan response dengan mengirimkan dokumen berupa HTML.
4. FTP server (File Transfer Protocol), merupakan salah satu layanan dari server yang digunakan untuk melakukan transaksi pengiriman suatu file. Layanan ini paling banyak digunakan oleh pemakai
internet.
5. Mail server, layanan yang digunakan untuk melakukan pengiriman surat (mail) menggunakan protokol internet.
(39)
6. Proxy server, sebuah layanan yang bertindak sebagai perantara antar client dan public network, dapat menghemat bandwidth serta
filtering kepada client.
2.3.3. Sistem Operasi Server
Seperti kita ketahui bahwa server diibaratkan sebagai sebuah komputer yang selalu memberikan layanan secara non-stop dan selalu siap
sedia untuk menerima permintaan request dari client. Server juga memiliki sistem operasi yang berfungsi sebagai kontrol terhadap aplikasi dan
layanan yang ada pada server.
Menurut pengamatan W3Techs – World Wide Web Technology Survey, sistem operasi pada server yang sering digunakan adalah berbasis Unix/Linux. Dipilih demikian karena Unix/Linux stabil, tangguh, dan
bersifat open source. Distribusi linux yang pesat memberikan dampak pada pemilihan sistem operasi khusus untuk server. Beberapa sistem operasi yang biasa digunakan pada server antara lain centos, debian, ubuntu, fedora, slackware, dan open suse.
Berikut distro linux yang sering digunakan untuk sebuah server
berdasarkan data yang diambil dari W3Techs – World Wide Web Technology Survey awal tahun 2013.
(40)
Gambar 2. 3 : Presentase penggunaan distro linux menurut W3Techs
2.4. Web Server
2.4.1. Pengertian Web Server
Menurut Achmad (2008), web server adalah sebuah perangkat lunak server yang berfungsi menerima permintaan (request) melalui HTTP atau HTTPS dari client yang dikenal dengan web browser dan mengirimkan kembali (response) hasilnya dalam bentuk halaman-halaman
web yang umumnya berbentuk dokumen HTML.
Menurut Aulds (2002), web server adalah aplikasi perangkat lunak yang mendengarkan permintaan dari client untuk mendapatkan informasi
(41)
berupa halaman web dengan menggunakan protokol HTTP. Protokol ini yang dipergunakan untuk mentransfer dokumen yang umumnya berbentuk
HTML.
Beberapa contoh aplikasi web server antara lain apache, micrsosft-IIS, nginx, litespeed,dan lighttpd web server.
2.4.2. Prinsip dan Cara Kerja
Web Server merupakan kombinasi perangkat keras, sistem operasi,
perangkat lunak server dan content.
Gambar 2. 4 : Elemen web server
Elemen tersebut 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.
2. Mengirimkan apa yang diminta oleh client (response).
(42)
Gambar 2. 5 : Cara kerja web server
Penjelasan gambar sebagai berikut :
A. Client bisa berupa sebuah komputer yang sudah memiliki aplikasi
web browser di dalamnya serta terhubung pada sebuah jaringan
internet atau intranet.
B. Server, sebuah komputer yang selalu siap sedia dalam melayani
client yang terhubung pada sebuah jaringan tertentu. Di dalam
server terdapat perangkat lunak web server. Pada jaringan, server
ini bisa dikenal dengan www.usd.ac.id, www.google.com atau
memiliki IP Address seperti 202.94.83.16, 192.168.1.1
1. Di sisi client, user meminta (request) sebuah halaman website
kepada server untuk ditampilkan pada komputer client. Di sini
client mengetikan suatu alamat yang disebut URL (Uniform
Resource Locator) pada browser. Misal client mengetik
(43)
atau HTTPS dicarilah komputer bernama www.usd.ac.id. Jika
ditemukan, maka seolah-olah terjadi sebuah permintaan “Halo USD, ada client yang minta halaman utama, ada di mana halaman utamanya?”. Ini yang disebut dengan request.
2. Di sisi server (web server). Mendapat permintaan halaman utama USD dari client, server mencari halaman sesuai dengan permintaan. Jika halaman yang diminta ditemukan, maka server
akan mengirimkannya pada client. Namun jika tidak ditemukan,
server akan memberikan pesan bahwa halaman yang diminta tidak
ditemukan yang dikenal dengan “404. Page Not Found”.
2.4.3. Apache
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
(44)
Gambar 2. 6 : Presentase penggunaan web server menurut W3Techs
Perkembangan apache dimulai dari tahun 1995 oleh sekelompok
kecil pemrogram yaitu Apache Software Foundation incorporated, tahun
1999 mulai berkonsentrasi untuk mendukung projek Apache HTTP server. Beberapa keunggulan yang ditawarkan antara lain :
1. Tingkat stabilitas tinggi.
2. Aplikasi secara keseluruhan, dan modul-modul tambahan bersifat
open source dengan masing-masing lisensi dari aplikasi.
3. Bekerja pada berbagai macam platform dan sistem operasi.
4. Menghadirkan tingkat keamanan yang lebih baik.
5. Dapat diintegrasikan dengan berbagai modul seperti PHP, MySQL,
(45)
2.5. Hypertext Transfer Protocol (HTTP)
2.5.1. Pengertian Hypertext Transfer Protocol (HTTP)
Hypertext Transfer Protocol (HTTP) adalah suatu protokol untuk menentukan aturan yang harus diikuti oleh web browser dalam meminta atau mengambil suatu dokumen yang berasal dari sebuah server tertentu.
Web browser biasanya memulai permintaan dengan membuat hubungan TCP/IP ke port 80 (port default dari HTTP).
HTTP digunakan untuk mentransfer dokumen dalam World Wide Web (WWW), termasuk protokol ringan, tidak berstatus dan generik yang dapat dipergunakan pada berbagai macam dokumen. Pengembang standar
HTTP dilaksanakan oleh Konsorium World Wide Web (World Wide Consortium/W3C) dan juga Internet Engineering Task Force (IETF) yang menghasilkan publikasi beberapa dokumen Request for Comments (RFC), antara lain RFC 1945 yang mendefinisikan tentang HTTP/1.0 dan RFC
2616 yang mendefinisikan tentang HTTP/1.1
2.5.2. HTTP version
2.5.2.1. HTTP/0.9
HTTP/0.9 adalah versi pertama dari HTTP yang diperkenalkan
pada tahun 1991. Versi ini merupakan versi mentah dari HTTP yang
dikenal saat ini, yaitu HTTP/1.0 dan HTTP/1.1. Versi ini masih sangat
(46)
2.5.2.2. HTTP/1.0
HTTP/1.0 diperkenalkan pada tahun 1996 ketika internet juga
mulai banyak digunakan. Perubahan HTTP dari 0.9 ke 1.0 dilakukan
untuk mengakomodasi tipe-tipe dokumen yang hendak dikirim beserta
enkoding yang dipergunakan dalam pengiriman data dokumen. Pada
HTTP/1.0 masih menggunakan koneksi terpisah untuk setiap
dokumen.
Protokol HTTP berdasar pada paradigma request dan respon.
Client membuat sebuah koneksi dengan server lalu mengirimkan permintaan pada server. Kemudian server memberikan respon sesuai dengan apa yang diminta oleh client disertai status pesan yang diberikan.
2.5.2.3. HTTP/1.1
HTTP/1.1 merupakan versi yang paling banyak digunakan saat ini
yang diperkenalkan sejak tahun 1997. Salah satu keunggulan dari
HTTP/1.1 yaitu dapat menggunakan koneksi yang sama untuk
melakukan transaksi. Dengan demikian, HTTP/1.1 bisa lebih cepat
karena memang tidak perlu untuk membuang waktu untuk koneksi
(47)
2.5.3. Metode Umum HTTP
Menurut RFC 2616, pada HTTP ada beberapa metode dalam
melakukan request dan respon antara client dan server, seperti di bawah ini:
1. GET, mengambil informasi dari server sesuai alamat URL yang sudah diberikan dan tidak berpengaruh pada data yang lain.
2. POST, mengirim data ke server yang dituju untuk diproses.
3. HEAD, sama dengan metode GET tetapi hanya mentransfer baris
status dan bagian header.
4. PUT, mengunggah representasi sumber tertentu.
5. DELETE, meminta pada server untuk menghapus sumber tertentu.
6. OPTIONS, mengembalikan metode HTTP yang mendukung
server, pilihan komunikasi yang tersedia pada request/respon.
7. CONNECT, mengubah koneksi permintaan untuk memfasilitasi
komunikasi terenkripsi.
8. TRACE, menganalisis koneksi antara client dan server dalam melakukan request dan response.
(48)
2.5.4. Kode Status Respon HTTP
Saat server memberikan respon terhadap sebuah permintaan HTTP ada sebuah pesan berupa kode angka 3 digit yang dikirimkan pada client. Digit pertama pada kode status itu menentukan salah satu dari lima kelas
respon yang terdapat di bawah ini:
1. 1xx Informational, kelas dari kode status ini menunjukkan respon sementara.
a. 100 Continue, client diperbolehkan untuk melanjutkan permintaannya.
b. 101 Switching Protocols, server memahami dan bersedia untuk memenuhi permintaan client.
2. 2xx Success, permintaan telah berhasil. Informasi yang kembali disesuaikan dengan metode yang digunakan dalam melakukan
permintaan.
a. 200 OK, permintaan telah berhasil.
b. 201 Created, permintaan telah terpenuhi dan
menghasilkan sumber daya yang baru dibuat.
c. 202 Accepted, permintaan telah diterima untuk diproses, akan tetapi pengolahan/pemrosesan belum selesai.
(49)
d. 203 Non-Authoritative Information, tidak diperlukan dan hanya sesuai apabila respon sebaliknya akan OK (kode
status 200)
e. 204 No Content, server telah memenuhi permintaan tersebut, tetapi tidak perlu mengembalikan isi dari entitas
tersebut atau bahkan memperbaharuinya.
f. 205 Reset Content, server telah memenuhi permintaan dan client harus melihat ulang dokumen yang sudah dikirim sebagai permintaan.
g. 206 Partial Content, server telah memenuhi permintaan GET secara parsial untuk sumber daya.
3. 3xx Redirection, perlunya untuk mengambil tindakan lebih lanjut oleh client untuk memenuhi permintaan.
a. 300 Multiple Choices, client dapat memilih representasi yang disukai dan dapat mengarahkan permintaan ke lokasi
tersebut.
b. 301 Moved Permanently, sumber daya yang diminta
telah ditetapkan secara permanen.
c. 302 Found, sumber daya yang diminta sementara berada
(50)
d. 303 See Other, respon terhadap permintaan dapat ditemukan pada URI (Uniform Resource Identifier) yang berbeda menggunakan metode GET.
e. 304 Not Modified, server memberikan respon pada client
yang melakukan permintaan GET bersyarat dan akses
diperbolehkan akan tetapi dokumen belum dimodifikasi.
f. 305 Use Proxy, sumber yang diminta harus diakses melalui proxy yang sudah diberikan.
g. 306 (Unused), digunakan pada versi sebelumnya dan sudah tidak lagi digunakan.
h. 307 Temporary Redirect, sumber daya yang diminta untuk sementara dialihkan pada URI (Uniform Resource Identifier) yang berbeda.
4. 4xx Client Error, kesalahan yang dilakukan oleh client dalam melakukan permintaan, sehingga server memberikan penjelasan tentang situasi kesalahan tersebut.
a. 400 Bad Request, permintaan tidak dapat dipahami oleh
server.
b. 401 Unauthorized, permintaan memerlukan otentikasi dari pengguna.
(51)
c. 402 Payment Required, kode ini disediakan untuk penggunaan masa depan.
d. 403 Forbidden, server memahami permintaan, tetapi menolak untuk memenuhinya.
e. 404 Not Found, server tidak menemukan apa-apa yang cocok sesuai dengan request yang diminta client.
f. 405 Method Not Allowed, metode yang ditetapkan dalam
melakukan request tidak diperbolehkan.
g. 406 Not Acceptable, sumber daya yang diidentifikasi oleh permintaan hanya mampu menghasilkan respon tidak
dapat diterima sebagai sebuah permintaan.
h. 407 Proxy Authentication Required, kode ini mirip dengan kode 401 (tidak sah), tapi menunjukkan bahwa
client harus terlebih dahulu mengotentikasikan dirinya dengan proxy.
i. 408 Request Timeout, client tidak menghasilkan
permintaan pada saat server standby.
j. 409 Conflict, permintaan tidak dapat diselesaikan karena konflik pada waktu yang bersamaan.
(52)
k. 410 Gone, sumber daya yang diminta tidak tersedia pada
server dan tidak ada alamat yang dikenal.
l. 411 Length Required, server menolak untuk menerima permintaan tanpa memenuhi syarat tertentu.
m. 412 Precondition Failed, prasyarat yang diberikan ketika dievaluasi dan diuji ternyata palsu.
n. 413 Request Entity Too Large, server menolak untuk memproses permintaan karena entitas permintaan lebih dari
kemampuan server dalam melakukan proses.
o. 414 Request-URI Too Long, server menolak untuk
melayani permintaan karena request URI (Uniform Resource Identifier) lebih panjang, sehingga sulit untuk ditafsirkan.
p. 415 Unsupported Media Type, server menolak untuk melayani permintaan karena format yang tidak mendukung.
q. 416 Request Range Not Satisfiable, server harus kembali memberikan respon jika permintaan termasuk pada rentang
dan tidak saling tumpang tindih.
r. 417 Expectation Failed, harapan untuk melayani
(53)
5. 5xx Server Error, kesalahan pada server karena tidak mampu untuk merespon permintaan yang masuk.
a. 500 Internal Server Error, server mengalami kondisi yang tidak terduga sehingga tidak dapat memenuhi
permintaan.
b. 501 Not Implemented, server tidak mendukung fungsi yang diperlukan dalam memenuhi permintaan.
c. 502 Bad Gateway, server yang sementara bertindak sebagai gateway atau proxy tidak mampu memberikan respon yang valid dalam memenuhi permintaan.
d. 503 Service Unavailable, server saat ini tidak dapat menangani permintaan.
e. 504 Gateway Timeout, server sementara bertindak
sebagai gateway atau proxy tidak menerima respon tepat waktu.
f. 505 HTTP Version Not Supported, server tidak mendukung versi protokol HTTP yang digunakan dalam
(54)
2.6. TCP : Transmission Control Protocol
2.6.1. Pengertian TCP
Transmission Control Protocol (TCP) merupakan salah satu
protokol terpenting pada layer transport selain User Datagram Protocol
(UDP). TCP memiliki beberapa karakteristik, yaitu connection oriented,
reliable dan byte stream service.
TCP merupakan protokol yang bersifat connection oriented. Artinya sebelum memulai proses transmisi data terjadi, dua aplikasi TCP
harus melakukan pertukaran control informasi (handshaking). TCP juga bersifat reliable karena menerapkan fitur deteksi kesalahan dan retransmisi apabila ada data yang rusak, sehingga keutuhan data dapat terjamin.
Sedangkan byte stream service artinya paket akan dikirimkan ke tujuan secara berurutan (sequencing).
2.6.2. TCP Header
Data TCP dirumuskan pada sebuah datagram IP seperti yang
terdapat pada gambar 2.7 di bawah ini:
(55)
Ukuran normal dari TCP header itu sendiri adalah 20 bytes. Gambar 2.8
menunjukkan format header dari TCP.
Gambar 2. 8 : TCP Header
Format dari header TCP dilengkapi dengan ukuran pada masing-masing fieldnya seperti pada Tabel 2.1 di bawah ini.
Tabel 2. 1 : Tabel ukuran field pada TCP Header
Nama Field Ukuran Keterangan
Source Port 16 bit (2 byte) Mengindikasikan sumber protokol lapisan aplikasi yang mengirimkan segmen TCP yang bersangkutan. Destination Port 16 bit (2 byte) Mengindikasikan tujuan protokol
lapisan aplikasi yang menerima segmen TCP yang bersangkutan. Sequence Number 32 bit (4 byte) Mengindikasikan nomor urut dari
oktet pertama dari data di dalam sebuah segmen TCP yang hendak dikirimkan.
Acknowledgment Number
32 bit (4 byte) Mengindikasikan nomor urut dari oktet selanjutnya dalam aliran byte yang diharapkan untuk diterima oleh pengirim dari penerima pada pengiriman selanjutnya.
Header Length (Data offset)
4 bit Mengindikasikan di mana data dalam segmen TCP dimulai. Field ini juga
(56)
berarti ukuran dari header TCP. Reserved 6 bit Direservasikan untuk digunakan
pada masa depan. Pengirim segmen TCP akan mengeset bit-bit ini ke dalam nilai nol.
Flags 6 bit Mengindikasikan flag-flag TCP yang jumlahnya ada enam yaitu :
1. URG (Urgent)
2. ACK (Acknowledgment) 3. PSH (Push)
4. RST (Reset)
5. SYN (Synchronize) 6. FIN (Finish)
Window 16 bit (2 byte) Mengindikasikan jumlah byte yang tersedia yang dimiliki oleh buffer host penerima segmen yang bersangkutan.
Checksum 16 bit (2 byte) Mampu melakukan pengecekan integritas segmen TCP.
Urgent Pointer 16 bit (2 byte) Menandakan lokasi data yang dianggap “urgent” dalam segmen. Options 32 bit (4 byte) Berfungsi sebagai penampung
beberapa opsi tambahan TCP.
Data 32 bit (4 byte) Digunakan untuk memenuhi panjang header, merupakan kelipatan 32 bit. Jika terdapat header yang kurang, maka akan ditambahkan sampai berjumlah 32 bit.
2.6.3. TCP State Transition Diagram
TCP State Transition Diagram merupakan sebuah ringakasan yang
menjelaskan berbagai aturan dalam melakukan inisiasi hingga pemutusan
koneksi menggunakan protokol TCP. Aturan-aturan tersebut terdapat pada
(57)
Gambar 2. 9 : TCP State Transtiton Diagram
Secara singkat makna dari masing-masing state sebagai berikut:
1. LISTEN, menggambarkan ketika menunggu sebuah request untuk membuat sebuah koneksi.
2. SYN-SENT, menunggu sambungan request yang cocok setelah mengirimkan permintaan koneksi.
3. SYN-RECEIVED, menunggu untuk mengkonfirmasi sebuah
request setelah menerima dan mengirimkan kembali permintaan sambungan koneksi.
(58)
4. ESTABLISHED, koneksi yang sudah terbuka, data yang diterima
dapat dikirim ke pengguna. Bisa dikatakan sebagai keadaan normal
untuk tahap transfer data menggunakan sebuah koneksi.
5. FIN-WAIT-1, menunggu permintaan untuk melakukan pemutusan
koneksi yang dikirim sebelumnya.
6. FIN-WAIT-2, menunggu permintaan untuk pemutusan koneksi
dari remote TCP.
7. CLOSE-WAIT, menunggu permintaan untuk pemutusan koneksi
dari pengguna lokal.
8. CLOSING, menunggu permintaan pemutusan koneksi ACK dari
remote TCP.
9. LAST-ACK, menunggu ACK dari permintaan pemutusan koneksi
yang sebelumnya dikirim TCP server.
10.TIME-WAIT, waktu tunggu yang diperlukan untuk memastikan
bahwa TCP server menerima permintaan penghentian koneksi. 11.CLOSED, tidak ada koneksi sama sekali.
2.7. Jaringan Komputer
2.7.1 Pengertian Jaringan Komputer
Jaringan komputer adalah sekumpulan komputer, printer, dan peralatan lainnya yang terhubung dalam satu kesatuan. Informasi dan data
bergerak melalui kabel maupun tanpa kabel sehingga memungkinkan
(59)
pada printer yang sama dan bersama-sama menggunakan perangkat keras
dan perangkat lunak yang terhubung dalam jaringan. Setiap komputer,
printer atau periferal yang terhubung dalam jaringan disebut node.
Menurut Lukas (2000), jaringan komputer adalah kumpulan
perangkat yang berinteraksi satu sama lain untuk menyediakan
komunikasi. Pada dasarnya tujuan suatu jaringan adalah penyampaian
informasi dari suatu tempat yang disebut sumber ke tempat lain yang
disebut tujuan, dengan menggunakan media transmisi dan
perangkat-perangkat serta protokol tertentu.
2.7.2. Jenis Jaringan Komputer
Berdasarkan luas areanya, jaringan komputer diklasifikasikan
menjadi :
1. Local Area Network (LAN)
LAN merupakan jaringan yang menghubungkan
komputer dan perangkat dalam area yang terbatas.
2. Metropolitan Area Network (MAN)
Merupakan jaringan yang mencakup satu kota besar
beserta daerah setempat. Area cakupannya lebih besar dari
(60)
beberapa LAN menjadi suatu bagian jaringan yang lebih
besar lagi.
3. Wide Area Network (WAN)
Jaringan dengan cakupan seluruh dunia. Jaringan
yang digunakan untuk membuat interkoneksi antar jaringan
dengan cakupan jarak yang luas.
Berdasarkan fungsi atau pengoperasiannya maka jaringan
komputer dibagi menjadi :
1. Peer to peer, merupakan jenis jaringan komputer di mana setiap komputer bisa menjadi server sekaligus client. Setiap komputer dapat menerima dan memberikan akses dari atau ke komputer
lain. Banyak diimplementasikan pada LAN.
2. Client server, merupakan jaringan komputer yang salah satu (boleh lebih) komputernya difungsikan sebagai server untuk melayani komputer lain. Komputer yang dilayani server disebut
client.
2.7.3. Topologi Jaringan
Topologi adalah suatu aturan/rules bagaimana menghubungkan komputer (node) satu sama lain secara fisik dan pola hubungan antara
(61)
komponen-komponen yang berkomunikasi melalui media/peralatan
jaringan.
Topologi berdasarkan jumlah komputer yang menggunakan media
transmisi data dibagi menjadi dua, yaitu :
1. Point to Point (P2P), topologi yang hanya melibatkan dua buah komputer saja.
2. Multipoint, topologi yang melibatkan lebih dari dua komputer. Contoh topologi multipoint antara lain :
a. Topologi Bus
b. Topologi Ring
c. Topologi Star
d. Topologi Tree
e. Topologi Mesh
2.8. Alat Ukur
2.8.1. Pengertian Pengukuran
Pengukuran merupakan suatu aktivitas atau tindakan
membandingkan suatu besaran yang belum diketahui nilainya terhadap
besaran lain yang sudah diketahui nilainya. Sedangkan pembandingnya
(62)
bagaimana menentukan besaran yang akan diukur, bagaimana
mengukurnya, dan mengetahui dengan apa besaran tersebut harus diukur.
2.8.2 Webserver Stress Tool
Aplikasi yang dikembangkan oleh perusahaan bernama Paessler
AG yang berfungsi untuk mengetahui kinerja dari sebuah web server. Paessler AG berdiri sejak 1997 dan menjadi anggota dari perusahaan
pengembang jaringan Cisco dan VMware Technology Alliance Partner.
Dengan menggunakan aplikasi ini, bisa diketahui kinerja dari
sebuah web server dalam keadaan baik atau tidak dalam menghadapi permintaan request dari client secara simultan. Keluaran yang dihasilkan bisa ditampilkan seberapa cepat dan handal sebuah layanan web dalam
memberikan response kepada client dalam bentuk grafik.
2.8.3 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
(63)
Load, bagaimana sebuah layanan mampu memberikan waktu yang optimal dalam memuat sebuah halaman web yang diminta oleh client/user. Di sini waktu memuat (loading) sangat mempengaruhi tingkat kepuasan
client dalam mengakses sebuah website.
Stress testing, melakukan serangan terhadap layanan web yang ada secara berlebihan. Dilakukan dengan membuat lonjakan client/user. Tujuannya agar dapat diketahui beban maksimum yang dapat diterima
oleh layanan web. Hasilnya dapat diketahui ambang batas dari layanan
web tersebut dan solusi yang dapat dilakukan ketika sudah melebihi ambang batas.
(64)
43
BAB III
PERANCANGAN
3.1. Perencanaan Awal
Sebelum melakukan pengujian, diperlukan beberapa hal yang diperlukan
dalam mendukung kegiatan pengujian. Di antaranya adalah pemilihan topologi
jaringan, pemilihan distro linux yang akan diuji, pemilihan website yang akan digunakan serta cara mengukur kehandalan dari sebuah server khususnya pada layanan web.
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 3.1 di bawah ini.
Tabel 3. 1 : Spesifikasi client dan server
SPESIFIKASI CLIENT SERVER
Random Memory Access
(RAM)
2 GB 4 GB
Processor Intel Core 2 Duo CPU @
2.10 GHz (2 CPUs)
32 Bit
Intel® Pentium® Dual CPU E2140 @ 1.60 GHz x 2
64 Bit
(65)
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.
3.2. Topologi Jaringan
Topologi jaringan yang akan digunakan dalam pengujian ini 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. Topologi jaringan yang digunakan seperti di bawah ini.
Gambar 3. 1 : Topologi jaringan 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
(66)
jaringan sudah dapat digunakan, dilakukan PING baik dari client ke server
maupun dari server ke client.
3.3. Pemilihan Distro Linux
Menurut data survei yang dilakukan oleh W3Techs – World Wide Web Technology Survey pada awal tahun 2013, didapatkan bahwa sistem operasi yang
banyak digunakan untuk server adalah linux. Linux memiliki berbagai varian, namun ada 3 distro besar yaitu debian, red hat dan slackware. Setiap distro besar
itu memiliki turunan, misalnya saja ubuntu merupakan turunan dari distro besar
debian, centos merupakan turunan dari distro besar redhat dan open suse
merupakan turunan dari distro besar slackware.
Pada pengujian ini, rencana 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 – World Wide Web Technology Survey pada awal tahun 2013. Berikut ini hasil survei dari distro linux yang biasa
(67)
Gambar 3. 2 : Pemilihan distro linux
Dari hasil survei tersebut, debian menjadi distro linux yang paling populer
untuk dijadikan sistem operasi sebuah server. Di sini, penulis memilih distro linux yang berasal dari data survei di atas yaitu ubuntu, centos, open suse serta
slackware sebuah distro yang berasal dari luar data survei di atas. Pemilihan distro
tersebut didasarkan pada tingkat kepopuleran serta merupakan distro turunan dari
masing-masing distro induk. Khusus untuk distro slackware, penulis memilih
dengan tujuan untuk menjadikan pembanding distro linux yang sudah ada pada
(68)
3.4. Rancangan Server
3.4.1 Spesifikasi
Server yang digunakan memiliki spesifikasi Intel® Pentium®
Dual CPU E2140 @ 1.60 GHz, RAM 4 GB dan kapasitas Harddisk 500
GB.
Server akan terdiri dari beberapa distro linux yang sudah dipilih dan harddisk akan dipartisi dengan kapasitas 80 GB setiap distro. Secara garis besar, server akan dibuat multiboot dengan tujuan dapat mengganti penggunaan distro linux yang akan diuji. Berikut tabel partisi pada
harddisk :
Gambar 3. 3 : Tabel partisi pada harddisk
Keterangan :
Partisi primary ada 3, yaitu Sda1, Sda2, dan Sda3.
Partisi extended pasti hanya ada satu, menempati Sda4.
Partisi logical ada 2, yaitu Sda5 dan Sda6. 3.4.2 Layanan Web
Pada masing-masing distro linux yang sudah dipasang pada server, layanan yang dijalankan hanyalah layanan web. Namun tidak menutup
(69)
kemungkinan untuk membuka layanan lain seperti SSH. Layanan web
yang digunakan pada server menggunakan apache. Versi apache yang digunakan memiliki versi yang sama, terutama pada major number dan
minor number.
Dipilih sebuah website (berbasis PHP, HTML, dan CSS) yang akan dimasukkan ke dalam layanan web tersebut. Website yang digunakan tidak memiliki keterkaitan dengan database. Isi dari website bisa berupa gambar, flash, serta media lainnya yang dapat memberikan beban kepada
client ketika mengaksesnya. Konfigurasi pada apache yang digunakan dibuat standar (default).
Berikut contoh halaman website yang akan disimpan pada web server apache
Gambar 3. 4 : Halaman website
(70)
3.5. Client
3.5.1. Spesifikasi
Spesifikasi yang digunakan pada komputer client, Intel Core 2 Duo CPU @ 2.10 GHz (2 CPUs) dengan RAM 2 GB dan harddisk sebesar 320 GB. Sistem operasi yang digunakan adalah Windows 7 Ultimate. Pada
client akan diinstal aplikasi yang berfungsi untuk menguji kinerja dari layanan web yang ada pada server.
3.5.2. Webserver Stress Tool
Sebuah aplikasi yang digunakan untuk melakukan pengujian
terhadap layanan web pada server. Aplikasi ini akan memberikan sebuah infromasi mengenai performansi dari web server itu sendiri. Dengan menciptakan simulasi user yang akan meningkat saat mengakses server
tersebut. Webserver Stress Tool yang digunakan adalah versi 7.
(71)
Ada beberapa fungsi utama pada aplikasi ini, antara lain
mensimulasikan pola beban pada web server, mengidentifikasi kinerja dari
web server dan sebagai alat pembantu dalam perawatan sebuah web server.
3.6. Skenario pengujian dan Kehandalan
3.6.1 Skenario pengujian
Skenario yang akan dilakukan dalam pengujian dibagi menjadi
dua, yaitu skenario ketika RAM pada server yang digunakan sebesar 2 GB dan skenario ketika RAM pada server yang digunakan sebesar 4 GB.
Server sendiri menggunakan sistem multiboot, di mana terdapat beberapa distro linux yang sudah dipilih dan dipasang pada server.
Tidak dilakukan perubahan pada konfigurasi web server, hanya menggunakan konfigurasi standar/default. Pada sisi client, Webserver
Stress Tool dijalankan dengan membangkitkan user yang meningkat secara signifikan. 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. Berdasarkan hasil percobaan awal (lampiran I) maka jumlah
(72)
apache) dan berlaku kelipatannya. Masing-masing user juga akan
membawa request per child dengan jumlah yang sama.
3.6.2 Kehandalan
Menurut Nielsen (1993), ada beberapa kriteria mengenai
kehandalan sebuah website yang terdapat pada tabel 3.2
Tabel 3. 2 : Tabel kehandalan sebuah website
Respon terhadap
request Pandangan dari sisi pengguna
< 0.1 s Sistem bereaksi seketika
< 1.0 s Berdasarkan pengalaman, pengguna merasa tidak senang, tetapi tetap fokus pada halaman
website
< 10 s Mendekati 10 detik, pengguna mulai merasakan adanya gangguan yang meningkat
> 10 s Pengguna merasa benar-benar terganggu dan kehilangan minat
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.
(73)
52
BAB IV
IMPLEMENTASI & ANALISIS
4.1. Instalasi Server
4.1.1. Instalasi Distro Linux
Pada pengujian ini, ditetapkan empat distro linux yang akan
digunakan. Distro linux tersebut adalah Ubuntu Server 10.04 LTS, CentOS 6.3, OpenSuSE 11.3 dan Slackware 13-1. Masing-masing distro memiliki
versi kernel yang sama yaitu 2.6. Server memiliki empat distro linux secara langsung (multiboot) yang dapat diganti penggunaannya.
Urutan instalasi distro linux dimulai dari distro linux yang
memiliki tingkat kesulitan instalasi tinggi ke rendah. Penulis memulai dari
instalasi Slackware 13-1 terlebih dahulu, dilanjutkan dengan instalasi
CentOS 6.3, kemudian OpenSuSE 11.3 dan diakhiri oleh Ubuntu Server
10.04 LTS. Masing-masing distro diberi kapasitas ruang 80 GB dan
menggunakan konfigurasi minimal server dengan hanya menginstal layanan web saja.
4.1.2. Setting IP Address
(74)
Distro linux yang sudah diinstal akan diberi IP address. IP address
yang diberikan bersifat statik. Pada linux cara yang paling mudah untuk
melakukan setting IP address statik dengan perintah : # ifconfig eth0 [Ip Add] netmask [Netmask] up
Contoh : ifconfig eth0 192.168.1.1 netmask 255.255.255.252 up
Namun dengan perintah ini, IP address yang disetting akan hilang (bersifat sementara) jika server dimatikan atau direstart.
Cara lain agar setting IP Address tidak hilang yaitu dengan
mengubah file network yang ada pada distro linux itu sendiri.
Pada Ubuntu Server 10.04 LTS, lakukan edit pada /etc/network/interfaces # nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface auto lo
iface lo inet loopback # IP Eth0
auto eth0
iface eth0 inet static address 192.168.1.1 netmask 255.255.255.252 gateway 192.168.1.2
Setelah edit file tersebut, lakukan restart pada network dengan perintah : # /etc/init.d/networking restart
Pada Slackware 13-1, lakukan edit pada /etc/rc.d/rc.inet1.conf
(75)
# Config information for eth0: IPADDR[0]="192.168.1.1"
NETMASK[0]="255.255.255.252" USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""
Setelah edit file tersebut, lakukan restart pada network dengan perintah : # /etc/rc.d/rc.inet1 restart
Pada CentOS 6.3, lakukan edit pada
/etc/sysconfig/network-scripts/ifcfg-eth0
# nano /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0" #BOOTPROTO="dhcp" HWADDR="00:27:0E:06:5D:C6" #NM_CONTROLLED="yes" #ONBOOT="no" #TYPE="Ethernet" UUID="6a3f30d5-d396-42e2-a98c-907cbe082bdd" #IP CentOS BOOTPROTO=static IPADDR=192.168.1.1 NETMASK=255.255.255.252 ONBOOT=yes TYPE=Ethernet
Setelah edit file tersebut, lakukan restart pada network dengan perintah : # service network restart
Pada OpenSuSE 11.3, lakukan edit pada /etc/sysconfig/network/ifcfg-eth0
# nano /etc/sysconfig/network/ifcfg-eth0
BOOTPROTO='static' BROADCAST=''
ETHTOOL_OPTIONS='' IPADDR='192.168.1.1/30' MTU=''
(76)
NAME='RTL8111/8168B PCI Express Gigabit Ethernet controller'
NETWORK=''
REMOTE_IPADDR='' STARTMODE='auto' USERCONTROL='no'
Setelah edit file tersebut, lakukan restart pada network dengan perintah : # /etc/init.d/network restart
4.1.3. Konfigurasi Web Server
Proses berikutnya setelah pemberian IP address pada masing-masing distro linux ada konfigurasi web server apache. Web server apache sudah terinstall secara langsung pada distro linux yang sudah terpasang,
hanya saja perlu dilakukan pengaktifan service/layanan dari web server
apache itu sendiri. Hal ini dilakukan, karena secara default service dari apache itu sendiri belum aktif.
Konfigurasi web server masing-masing distro sebagai berikut : 1. Ubuntu Server 10.04 LTS
Untuk mengaktifkan layanan apache dengan perintah :
# /etc/init.d/apache2 start
Direktori yang digunakan untuk menyimpan file-file yang berhubungan dengan website terletak pada :
/var/www/
2. Slackware 13-1
Untuk mengaktifkan layanan apache dengan perintah :
(77)
# /usr/sbin/apachectl –k start
Direktori yang digunakan untuk menyimpan file-file yang berhubungan dengan website terletak pada :
/var/www/htdocs
3. CentOS 6.3
Untuk mengaktifkan layanan apache dengan perintah :
# service httpd start
Bisa juga dengan menggunakan perintah „ntsysv‟, pilih httpd
Direktori yang digunakan untuk menyimpan file-file yang berhubungan dengan website terletak pada :
/var/www/html
4. OpenSuSE 11.3
Untuk mengaktifkan layanan apache dengan perintah :
# /etc/init.d/apache2 start
Direktori yang digunakan untuk menyimpan file-file yang berhubungan dengan website terletak pada :
/srv/www/htdocs
Untuk mengetahui konfigurasi apache pada server berjalan dengan baik, dapat menggunakan aplikasi web browser yang ada pada client. Dengan memasukkan IP address server pada kolom URL web browser
yang digunakan. Contoh sebagai berikut, client ingin mengakses website
(78)
Gambar 4. 1 : Tampilan website ketika webserver sudah diaktifkan
4.2. Webserver Stress Tool
Aplikasi yang berfungsi untuk mengetahui kinerja dari sebuah web server. Dengan menggunakan aplikasi ini, dapat diketahui kinerja dari sebuah web server
dalam menghadapi permintaan request dari client secara simultan serta memungkinkan untuk lebih cepat mengidentifikasi masalah kinerja pada web server yang digunakan.
(79)
Aplikasi Webserver Stress Tool memiliki tiga tipe pengujian, yaitu CLICKS, TIME, dan RAMP. Masing-masing pengujian memiliki fungsi yang
berbeda-beda.
Gambar 4. 3 : Tipe pengujian yang ada pada Webserver Stress Tool
Penulis memilih pengujian dengan tipe CLICKS. Setelah memilih tipe pengujian,
maka perlu dimasukkan jumlah clicks tiap user. Jumlah Clicks Per User yang akan dimasukkan disesuaikan dengan banyaknya user yang akan disimulasikan untuk melakukan request pada server. Jadi, ketika user yang akan melakukan
request sejumlah X user, maka Clicks Per User pun sejumlah X.
Gambar 4. 4 : Jumlah user yang akan disimulasikan beserta Click Delay
Jumlah user yang akan disimulasikan terdapat pada Number Of Users yang memiliki nilai sama dengan Clicks Per User yang terdapat pada Gambar 4.3. Lalu
pada bagian kolom Click Delay diberi nilai nol dan beri tanda ceklist pada Use
(80)
Setelah kriteria pengujian sudah siap, maka langkah selanjutnya adalah
menjalankan pengujian terhadap server. Masukkan IP address server yang akan diuji pada kolom URL.
Gambar 4. 5 : Menjalankan simulasi pada server yang dituju
Pilih tombol Start Test untuk memulai simulasi. Ketika simulasi dijalankan, maka
tampilan berubah seperti gambar di bawah ini
(81)
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. Hasil dari pengujian ini berupa grafik, log file bertipe .txt, word, dan HTML.
4.3. Hasil Pengujian
Setelah pengujian selesai dilakukan, maka akan menghasilkan sebuah
report mengenai pengujian yang sudah dilakukan. Report dari pengujian ini berisi mengenai waktu yang diperlukan untuk menyelesaikan sebuah request, bandwidth
yang digunakan oleh server dalam memberikan layanan terhadap request dari
user, banyaknya request yang dikirim ke server selama pengujian serta banyaknya
user yang menunggu untuk menyelesaikan request yang dikirimnya.
Hasil pengujian ini akan dianalisa sesuai dengan skenario pengujian yang
dirancang sebelumnya. Skenario dengan menggunakan sumber daya memori
server (RAM) 2 GB dan 4 GB. Masing-masing skenario sudah diberi beban user
simulasi dan clicks per user berderet dengan nilai 300, 600, 900 dan 1200. Semuanya diujicobakan pada empat distro linux yang digunakan sebagai sistem
operasi pada server.
Aplikasi Webserver Stress Tool memberikan report dari pengujian yang sudah dilakukan. Hal ini sangat membantu penulis dalam melakukan analisa
(82)
tetap memperhatikan bentuk report lain yang disediakan oleh Webserver Stress Tool sebagai acuan dan membantu analisa.
Berikut ini grafik-grafik yang akan digunakan oleh penulis sebagai acuan
analisa setelah dilakukannya pengujian
1. Grafik Click Times and Errors
Gambar 4. 7 : Grafik Click Times and Errors
Grafik pada gambar 4.7 menjelaskan mengenai rata-rata waktu
yang diperlukan dalam mengirimkan sebuah request oleh user kepada
server. Semakin tinggi besar angka Average Request Time pada sumbu Y menandakan adanya peningkatan jumlah request yang berdampak pada meningkatnya waktu dalam melakukan sebuah request. Pada grafik ini juga menjelaskan mengenai kemungkinan adanya error yang terjadi ketika dilakukannya pengujian.
(83)
Gambar 4. 8 : Grafik Click Time, Hit/s, Users/s
Grafik pada gambar 4.8 tidak jauh berbeda dengan grafik yang
terdapat pada gambar 4.7. Pada grafik ini terdapat sebuah sumbu Y lain
yang terdapat di sebelah kanan garis horizontal. Secara kasat mata garis
warna merah pada grafik sama persis dengan grafik yang ada pada gambar
4.7. Namun pada grafik ini terdapat warna lain, yaitu hijau. Garis ini
menjelaskan mengenai hantaman (hit) yang mungkin akan diterima oleh
server. Baik garis merah dan garis hijau memiliki sifat berbanding terbalik, dikatakan demikian karena ketika nilai click time semakin besar, maka hantaman yang dapat dihasilkan akan berkurang. Hal ini disebabkan
karena meningkatnya user yang melakukan request pada server, maka waktu yang dibutuhkan untuk menyelesaikan request akan meningkat dan Hits/s – Clicks/s akan mengalami penurunan.
(84)
Gambar 4. 9 : Grafik Open Requests & Transferred Data
Grafik pada gambar 4.9 menunjukkan banyaknya jumlah
penerimaan request yang dibuka oleh server yang dibandingkan dengan lalu lintas jaringan yang menghubungkan antara client dan server. Semakin banyak request yang diterima, maka bandwidth jaringan akan menurun.
4. Grafik Spectrum of Clicks Times
(85)
Grafik pada gambar 4.10 menunjukkan waktu tunggu yang
diperlukan oleh sebuah request agar dapat dilayani sampai selesai oleh
server. Grafik terdiri atas tiga buah sumbu, yaitu sumbu X mengenai lama waktu tunggu sebuah request, sumbu Y mengenai presentase user yang menunggu untuk dilayani oleh server dan sumbu Z mengenai lamanya waktu pengujian. Ketika request meningkat, waktu tunggu akan meningkat dikarenakan server membutuhkan waktu untuk menyelesaikan request
yang sudah diterima.
5. Grafik Server dan User Bandwidth
Gambar 4. 11 : Grafik Server and User Bandwidth
Grafik pada gambar 4.11 menunjukkan besarnya bandwidth yang tersedia pada server. Selain bandwidth keseluruhan pada server, grafik ini juga menunjukkan rata-rata bandwidth pada masing-masing user. Apabila
user yang melakukan request meningkat secara drastis akan mempengaruhi bandwidth server dan rata-rata bandwidth per usernya.
(86)
Penulis juga menyertakan report pada server mengenai pemakaian memori yang digunakan ketika pengujian berlangsung. Report pada server ini menggunakan bahasa Python yang berfungsi untuk menampilkan semua proses
yang berjalan pada server tersebut beserta besar memori yang dipakai dalam mengerjakan proses tersebut.
Gambar 4. 12 : Memori yang digunakan oleh server
Gambar 4.12 merupakan hasil dari penggunaan memori pada server. Masing-masing service yang berjalan pada server akan diketahui besar penggunaannya. Namun penelitian ini lebih menekankan pada layanan web saja. Seperti pada Gambar 4.12 terlihat bahwa layanan web membutuhkan banyak memori agar mampu melayani peningkatan jumlah request yang berasal dari aplikasi Webserver Stress Tool.
(87)
4.4. Analisis Pengujian
4.4.1. Skenario menggunakan memori 2 GB
4.4.1.1. Beban 300
Selama pengujian, empat distro yang dipasang pada server tidak ada yang mengalami error. Slackware memiliki rata-rata waktu untuk menerima request dari client lebih singkat daripada tiga distro linux lainnya. Hal ini bisa dilihat dari grafik Click Times & Errors hasil
pengujian masing-masing distro linux. Pada gambar 4.13, slackware
mampu memiliki rata-rata request time client di bawah 2.000 ms.
Gambar 4. 13 : Grafik Click Times & Errors Slackware
Rata-rata request time client yang berada di bawah 2.000 ms memberikan keuntungan pada slackware dalam mempersingkat waktu
(88)
Gambar 4.14 menjelaskan bahwa centos memiliki rata-rata user bandwidth yang mampu mencapai 2.700 kbit/s pada jaringan yang digunakan. Artinya centos dapat memberikan lalu lintas dalam
pengiriman data dari server ke client maupun sebaliknya lebih cepat.
Gambar 4. 14 : Grafik Server & User Bandwidth Centos
Dampak dari tingginya rata-rata user bandwidth dapat mempengaruhi penurunan bandwidth server secara keseluruhan, apalagi jika jumlah
request dari client semakin meningkat. Hal ini dapat berpengaruh pada proses transfer data antara client dan server. Slackware dan centos mampu untuk melayani request mencapai 210 request tiap detiknya, seperti yang terlihat pada gambar 4.15 dan gambar 4.16.
(89)
Gambar 4. 15 : Grafik Open Requests & Transferred Data Slackware
Gambar 4. 16 : Grafik Open Requests & Transferred Data Centos
Grafik pada gambar 4.15 dan 4.16 bisa diketahui kecepatan dalam
menerima request dari client dan memberikan respon terhadap request
yang sudah diterima oleh server. Kecepatan ini juga memberikan dampak pada banyaknya proses yang perlu dibuka khususnya pada
web server sebagai layanan dalam memberikan respon. Ketika terjadi peningkatan request secara signifikan, memungkinkan terjadi
(1)
145
Gambar II. 39 : Grafik Click Times & Errors Centos
Gambar II. 40 : Grafik Server & User Bandwidth Ubuntu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(2)
146
Gambar II. 41 : Grafik Open Requests & Transferred Data Open Suse
Gambar II. 42 : Grafik Spectrum of Click Times Slackware
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(3)
147
Gambar II. 43 : Grafik penggunaan memori Open Suse
Gambar II. 44 : Grafik penggunaan memori Ubuntu
4.
Beban Request 1.200
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(4)
148
Gambar II. 45 : Grafik Click Times & Errors Ubuntu
Gambar II. 46 : Grafik Server & User Bandwidth Open Suse
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(5)
149
Gambar II. 47 : Grafik Open Requests & Transferred Data Open Suse
Gambar II. 48 : Grafik Spectrum of Click Times Slackware
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(6)
150
Gambar II. 49 : Grafik penggunaan memori Centos
Gambar II. 50 : Grafik penggunaan memori Open Suse