## ANALISIS PERBANDINGAN PERFORMA APACHE WEB SERVER DAN NGINX MENGGUNAKAN APACHE JMETER
Busran 1 , Ahmad Ridwan 2
Jurusan Teknik Informatika S1 Fakultas Teknik Institut Teknologi Padang busran.nofit@gmail.com

## Abstract
The increase in the number of internet users has an impact on increasing the number of requests for web page services. This makes choosing a webserver application very important. The survey shows that there are two open source web server applications that are widely used today, namely Apache and Nginx. This study aims to determine the performance of a web server engine with which application is superior in serving clients. The method used in this research is to analyze the performance of the webserver based on the parameters of response time and throughput using Apache Jmeter as a measurement tool. The results can  be  used  as  a  reference  in  choosing  a  webserver.  In  the  tests  that  have  been  done,  Nginx  has  better performance than Apache based on the response time and throughput parameters. These results can be a recommendation in the use of a web server engine application.
Keywords - comparison of server web, throughput, responce time
Intisari
Peningkatan jumlah pengguna internet berdampak pada peningkatan jumlah permintaan layanan halaman web. Hal ini menjadikan pemilihan aplikasi penggerak webserver menjadi sangat penting. Survei menunjukan terdapat  dua aplikasi  webserver  open  source  yang banyak digunakan saat ini yaitu Apache dan Nginx. Penelitian ini bertujuan untuk mengetahui kinerja mesin webserver dengan aplikasi mana yang lebih unggul dalam melayani client. Metode yang dilakukan dalam penelitian ini yaitu menganalisa kinerja webserver berdasarkan parameter response time dan throughput menggunakan Apache Jmeter sebagai tool pengukuran.  Hasilnya  dapat  menjadi  referensi  dalam  memilih  webserver.  Dalam  pengujian  yang  sudah dilakukan Nginx lebih baik performanya dibandingkan Apache berdasarkan parameter response time dan throughput. Hasil ini dapat menjadi rekomendasi dalam penggunaan aplikasi mesin web server.
Kata Kunci — perbandingan server web, throughput, waktu respon

## 1. PENDAHULUAN
Pemanfaatan  jaringan  komputer  dalam transaksi data antar satu pihak dengan pihak lain adalah suatu hal yang lazim. Tidak hanya pada skala  organisasi  besar  ( corporate ),  tetapi  juga sudah  dapat  ditemukan  di  institusi  pendidikan, unit-unit usaha skala kecil, bahkan juga di lokasi perumahan  penduduk.  Pemanfaatan  jaringan komputer  juga  beragam  dari  hanya  sekedar untuk  saling  berbagi  berkas  ( file  sharing ), mengakses website , mengirim dan menerima e- mail ,  belanja  secara online , e-banking , e- governing , pengontrolan jarak jauh, manajemen data  baik  yang  bersifat  sentral  maupun terdistribusi, dan lainnya.
Dalam  menyajikan  informasi,  biasanya  di sediakan  oleh website . Website itu  sendiri merupakan halaman situs informasi yang dapat
diakses dengan cepat melalui browser. Banyak jenis-jenis web  server yang  dapat  digunakan, diantaranya  Apache  Web  Server,  Apache Tomcat, Microsoft Internet Information Service (IIS)  ,  Nginx,  Lighttpd,  Zeus  Web Server, dan lainnya.  Masing-masing  dari software tersebut tentu mempunyai keunggulan maupun kelemahan, baik dari segi performa maupun dari segi fitur yang disediakan.
Survei  [1]  yang  dilakukan  oleh  netcraft, menapilkan web  server Apache  dan  Nginx termasuk web server yang  banyak  digunakan. Tercatat  sebanyak  17,83% website dunia menggunakan web  server Apache  dan  Nginx penggunanya sebanyak 13,56%. Tetapi sekarang  ini  peminat  dari web  server Apache mulai berkurang.  Pada  bulan  juni  2017  apache digunakan  sebanyak  21,02% website dunia, menurun sebanyak 3,20% dari survei bulan juli. Sedangkan pada web server Nginx malah terjadi
peningkatan sebanyak 1,48%, dari 13,56% pada bulan juni menjadi 15,05% pada bulan juli.

## 2. METODOLOGI
Penelitian ini dilakukan dengan membangun jaringan[2] simulasi menggunakan dua  mesin  web  server  yaitu  Apache[3]  Web
Server dan Nginx[4] Web Server yang dipasang bergantian dengan topologi seperti gambar 1.
Gambar 1. Topologi Mesin Web Server
Data yang dikumpulkan dalam penelitian  berupa  data  respon  time  dan throughtput  dari  masing-masing  mesin  dengan alat bantu Aplikasi Apache Jmeter.
Respon  time server terhadap  masing- masing request yang  di  minta  oleh client . Request yang dilakukan sebanyak 100 request , 1000 request dan 10000 request  pada  setiap client . Troughput : banyak proses request yang dapat dilakukan oleh server dalam satuan waktu. Pada penelitian ini waktu yang di uji selama 100 detik, 500 detik dan 1000 detik.
Data  yang  dihasilkan  dari  Jmeter  pada  setiap client akan disajikan ke dalam tabel.
Tabel 1. Tabulasi Data Pengukuran Server
Data yang ada pada tabel akan dibandingkan satu sama lain. Nilai response time yang paling rendah adalah yang paling baik. Semakin cepat response  time  maka  semakin  banyak  request yang dapat dilakukan. Sedangkan nilai troughput memperlihatkan berapa proses(thread)  yang  dapat  di  uji  dalam  satuan waktu.

## 3. HASIL DAN PEMBAHASAN

## 3.1 Instalasi Apache Server
Untuk  melakukan  penginstalan    Apache  dapat dilakukan dengan perintah terminal pada ubuntu sebagai berikut:
Sudo apt-get install apache2
Untuk  konfigurasi  Apache  dilkakukan  dengan memakai konfigurasi default.
# prefork MPM <IfModule mpm_prefork_module> StartServers             5 MinSpareServers          5 MaxSpareServers         10 MaxRequestWorkers      250 MaxConnectionsPerChild   0 </IfModule> Timeout 60 KeepAlive On
MaxKeepAliveRequests 100 KeepAliveTimeout 5

## 3.2 Instalasi Nginx Web Server
Untuk menginstallan webserver Nginx dilakukan  dengan  mengetikkan  perintah  pada terminal Ubuntu.

## Sudo apt-get install nginx
Konfigurasi  pada webserver Nginx  diatur default sama seperti webserver Apache.
user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768;
# multi_accept on;
}
http { ## Waktu Respon (ms) Apache Nginx
C1 C2 C3 C1 C2 C3 Samples - - - - - - Rata-Rata - - - - - - Median - - - - - - 90% Line - - - - - - Minimum - - - - - - Maximum - - - - - - Erorr - - - - - - Time - - - - - -
# Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048;

## 3.3 Instalasi Halaman Pengujian
Pada pengujian digunakan halaman index yang  dibuat  menggunakan  aplikasi  joomla. Aplikasi  joomla  ini  akan  di  installkan  pada webserver .

## Gambar 2 Tampilan halaman pengujian
Website ini nantinya yang akan di- request oleh client kepada webserver .  Pada client nantinya  akan  diinstalkan  Apache  Jmeter  dan dikonfigurasi,  yang  berfungsi  untuk  menguji apakah webserver mampu  melakukan  respon terhadap client -nya.
Halaman website dibutuhkan  dalam  pengujian ini karena dalam koneksi request yang nantinya dihitung adalah besar header, body dan footer.
3.4 Instalasi Apache Jmeter
Untuk menjalankan jmeter harus diinstalkan  java  terlebih  dulu.  Karena  jmeter sendiri merupanan aplikasi berbasis java. Jmeter dapat di- download melalui website -nya. Selanjutnya  jmeter  yang  di- download tadi diekstrak  di setiap client untuk  bisa  digunakan pada pengujian. Jmeter bekerja mengirim suatu request kepada webserver .  Pada webserver nantinya akan merespon request yang dilakukan oleh  jmeter  dan  pada  jmeter  akan keluar  hasil berupa load time , size in bytes , header size in bytes , body size in bytes , response code dan response message di setiap request yang diminta oleh jmeter.
3.5 Hasil Pegujian Response time
Pengujian response time ,  ditentukan berapa  banyak request yang  diminta  oleh  tiap- tiap client yang nantinya akan diproses oleh web server . Setiap server akan diuji dengan banyak request yang sama, untuk menentukan hasil dari pengujian.
Tabel 2. Response time 100 request
Waktu Respon (ms) Apache Nginx C1 C2 C3 C1 C2 C3 Rata-Rata 281 276 285 158 158 155 Median 234 232 241 134 135 134 90% Line 387 372 419 210 210 202 Minimum 177 154 112 111 112 109 Maximu m 919 921 810 807 663 770 Erorr 0,00% 1,00% 1,00% 0,00% 0,00% 0,00% Time 0:00:2 8 0:00:2 7 0:00:2 8 0:00:1 6 0:00:1 5 0:00:1 5 Pada  tabel  2  dapat  dilihat  rata-rata response time dari  100 request pada  Apache adalah 281ms untuk client 1, 276ms untuk client 2  dan  285ms  untuk client 3.  Di  kolom median 234ms untuk client 1, 232ms untuk client 2 dan 241ms  untuk client 3.  Pada  Apache  ini  juga terdapat request yang  gagal  seperti  dikolom error , 2 client dari  Apache terjadi error sebesar 1.00%  yang  terjadi  pada client 2  dan  3.  Dan apache  sendiri  membutuhkan  waktu  untuk memprose request untuk  masing-masing client selama  28  detik  untuk client 1,  27  detik  untuk client 2 dan 28 detik untuk client 3. Sedangkan Nginx memperoleh nilai rata- rata  pada  masing-masing client -nya  sebanyak 158ms  untuk client 1  dan client 2,  dan  untuk client 3  adalah  155ms.  Pada median Nginx memperoleh  nilai  134ms  untuk client 1  dan client 3,  sedangkan client 2  nya  135ms.  Pada Nginx  tidak  terdapat  data  yang error ,  dapat dilihat dikolom error pada tabel diatas masing- masing client memperoleh error 0.00%. Nginx membutuhkan  waktu  untuk  merespon  masing- masing client- nya selama 16 detik untuk client 1 dan 15 detik untuk client 2 dan 3.

## Tabel 3. Response Time 1000 Request
Waktu Respon (ms) Apache Nginx C1 C2 C3 C1 C2
C3 Rata-Rata 365 363 369 224 223 229 Median 279 279 286 179 179 187 90% Line 678 665 628 363 360 378 Minimum 92 103 51
100 112 96
Maximum 3107 3069 3021 1370 1201 1124 Erorr 0,50% 0,60% 0,50% 0,00% 0,00% 0,00% Time 0:06:06 0:06:03 0:06:10 0:03:45 0:03:43 0:03:51 Pada  table  3  dapat  dilihat  rata-rata response time dari  1000 request pada  Apache adalah 365ms untuk client 1, 363ms untuk client 2  dan  369ms  untuk client 3.  Dikolom median 279ms untuk client 1, 279ms untuk client 2 dan 286ms  untuk client 3.  Pada  Apache  ini  juga terdapat request yang gagal seperti pada kolom error ,  di client 1  dan client 3  terjadi error sebesar 0,50%, pada client 2 sebesar 0,60%. Dan
Apache  sendiri  membutuhkan  waktu  untuk memproses request untuk masing-masing client selama  6  menit  6  detik  untuk client 1,  untuk client 2 selama 6 menit 3 detik dan untuk client 3 selama 6 menit 10 detik.
Sedangkan Nginx memperoleh nilai rata- rata  pada  masing-masing client -nya  sebanyak 224ms untuk client 1, 223ms untuk client 2, dan untuk client 3  adalah  229ms.  Pada median Nginx  memperoleh  nilai  179ms  untuk client 1 dan  2,  sedangkan client 3  nya  187ms.  Pada Nginx  tidak  terdapat  data  yang error ,  dapat dilihat dikolom error pada tabel diatas masing- masing client memperoleh  error  0.00%.  Nginx membutuhkan  waktu  untuk  merespon  masing- masing client -nya selama 3 menit 45 detik untuk client 1,  3 menit  43 detik untuk client 2 dan 3 menit 51 detik untuk client 3.

## Tabel 4. Response Time 10000 Request
Waktu Respon (ms) Apache Nginx C1 C2 C3 C1 C2 C3 Rata-Rata 400 400 405 266 266 267
Median 326 325 331 165 159 165 90% Line 678 675 689 665 665 664
Minimum
53 11 37 101 99 99
Maximum 1983 2014 1759 2009 1851 1800 Erorr 0,79% 0,82% 0,76% 0,00% 0,00% 0,00% Time 1:06:50 1:06:46 1:07:53 0:44:36 0:44:25 0:44:57
Tabel  4  dapat  dilihat  rata-rata response time dari  10000 request pada  Apache  adalah 400ms untuk client 1 dan client 2, untuk client 3 sebesar  405ms.  Dikolom median 326ms  untuk client 1, 325ms untuk client 2 dan 331ms untuk client 3. Pada Apache ini juga terdapat request yang gagal seperti pada kolom error , di client 1 terjadi error sebesar 0,79%, di client 2 sebesar 0,82% dan di client 3 terjadi error sebesar 0,76.
Dan Apache sendiri membutuhkan waktu untuk
memprose request untuk  masing-masing client selama  1  jam  6  menit  50  detik  untuk client 1, untuk client 2 selama 1 jam 6 menit 46 detik dan untuk client 3 selama 1 jam 7 menit 53 detik. Sedangkan Nginx memperoleh nilai rata- rata  pada  masing-masing client -nya  sebanyak 266ms  untuk client 1  dan client 2,  dan  untuk client 3  sebesar  267ms.  Pada median Nginx memperoleh  nilai  165ms  untuk client 1  dan client 3,  sedangkan client 2  nya  159ms.  Pada Nginx  tidak  terdapat  data  yang error ,  dapat dilihat dikolom error pada tabel diatas masing- masing client memperoleh error 0.00%. Nginx membutuhkan  waktu  untuk  merespon  masing- masing client -nya  selama  44  menit  36  detik untuk client 1, 44 menit 25 detik untuk client 2 dan 44 menit 57 detik untuk client 3. Dari perbandingan hasil pengujian
Apache  dan  Nginx  pada response time 100, 1000,  dan  10000 request ,  dapat  disimpulkan bahwa  Nginx  memiliki  kinerja  lebih  baik. Karena respon Nginx ke setiap client -nya lebih cepat  dari  pada  Apache,  dan  di  Nginx  tidak terjadi  kegagalan  respon  terhadap  masing- masing client -nya  berbanding  terbalik  sama Apache  yang  masih-masing client -nya  terjadi kegagalan respon.

## 3.6 Hasil Pengujian Throughput
Pada  pengujian  ini,  ditentukan  berapa lama waktu request yang akan diproses oleh web server dalam  melakukan  respon  terhadap request yang dilakukan oleh client .
Tabel 5. Throughput 100 detik
Waktu Respon (ms) Apache Nginx C1 C2 C3 C1 C2 C3 Samples 289 289 280 460 460 454
Rata-rata 345 346 356 216 217 219
Median 276 269 278 136 136 136 90% Line 544 573 611 482 501 488 Minimum 111 167 189 112 110 110
Maximum 1378 1669 1163 975 963 955 Erorr 0,69% 0,35% 0,36% 0,00% 0,00% 0,00%
Pada  tabel  5,  dalam  waktu  100  detik Apache  dapat  mengeksekusi request sebanyak 289 request untuk client 1  dan client 2,  untuk client 3 sebanyak 280 request . Dengan rata-rata respon 345ms untuk client 1, 246ms untuk client 2  dan  256ms  untuk client 3.  Di  kolom median
276ms untuk client 1, 269ms untuk client 2 dan
278ms  untuk client 3.  Pada  Apache  ini  juga terdapat request yang gagal seperti pada kolom error , di client 1 terjadi error sebesar 0,69%, di client 2  sebesar  0,35%  dan  di client 3  terjadi error sebesar 0,36.
Sedangkan  Nginx  dapat  mengeksekusi request masing-masing client nya sebanyak 460 request untuk client 1  dan client 2,  dan  untuk client 3 sebanyak 454 request . Dengan rata-rata request 216ms  untuk client 1,  217ms  untuk client 2 dan 219ms untuk client 3. Pada median Nginx  memperoleh  nilai  136ms  untuk  semua client -nya. Pada Nginx tidak terdapat data yang error .
Tabel 6. Throughput 500 detik
Waktu Respon (ms) Apache Nginx C1 C2 C3 C1 C2 C3
Samples 1322 1326 1284 2497 2506 2469 Rata-rata 378 376 387 199 199 200
Median 298 292 301 142 143 144 90% Line 665 665 688 332 325 331 Minimum 111 66 40 101 109 111 Maximum 1573 2001 1889 1043 1374 1406 Erorr 1,13% 0,98% 0,93% 0,00% 0,00% 0,00%
Dari  tabel  6,  waktu  500  detik  Apache dapat  mengeksekusi request sebanyak  1322 request untuk client 1, 1326 request untuk client 2,  dan  untuk client 3  sebanyak  1284 request .
Dengan  rata-rata  respon  378ms  untuk client 1, 376ms untuk client 2 dan 387ms untuk client 3. Di kolom median 298ms untuk client 1, 292ms untuk client 2  dan  301ms  untuk client 3.  Pada Apache  ini  juga  terdapat request yang  gagal seperti pada kolom error , di client 1 terjadi error sebesar 1,13%, di client 2 sebesar 0,98% dan di client 3 terjadi error sebesar 0,93.
Sedangkan  Nginx  dapat  mengeksekusi request masing-masing client -nya  sebanyak  2497 request untuk client 1  untuk client 2  sebanyak 2506 request , dan untuk client 3 sebanyak 2469 request . Dengan rata-rata request 199ms untuk client 1 dan client 2, dan untuk client 3 rata-rata 200ms.  Pada median Nginx  memperoleh  nilai 142ms  untuk client 1,  untuk median client 2 dengan  nilai 143ms  dan  untuk median client 3 dengan nilai 144ms. Pada Nginx tidak terdapat data  yang error ,  dapat  dilihat  dikolom error pada  tabel  di  atas  masing-masing client memperoleh error 0.00%.

## Tabel 7. Throughput 1000 detik
Waktu Respon (ms) Apache Nginx C1 C2 C3 C1 C2 C3
Samples 2533 2537 2477 4525 4527 4473 Rata-rata 394 394 401 220 220 221 Median 297 297 304 146 146 148
90% Line 740 745 758 405 400 405 Minimum
41 40 56 106 110 110 Maximum 1965 1831 1685 1320 1230 1551 Erorr 0,63% 0,79% 0,65% 0,00% 0,00% 0,00%
Dari tabel 7 dijelaskan, dalam waktu 1000 detik  Apache  dapat  mengeksekusi request sebanyak  2533 request untuk client 1,  2537 request untuk client 2,  dan  untuk client 3
sebanyak 2477 request . Dengan rata-rata respon 394ms  untuk client 1  dan client 2,  dan  untuk client 3 mempunyai rata-rata request 401ms. Di kolom median 297ms untuk client 1 dan client
2,  dan  304ms  untuk client 3.  Pada  Apache  ini juga  terdapat request yang  gagal  seperti  pada kolom error ,  di client 1  terjadi error sebesar 0,63%, di client 2 sebesar 0,79% dan di client 3 terjadi error sebesar 0,65%.
Sedangkan  Nginx  dapat  mengeksekusi request masing-masing client -nya  sebanyak 4525 request untuk client 1,  untuk client 2 sebanyak  4527 request ,  dan  untuk client 3 sebanyak  4473 request .  Dengan  rata-rata request 220ms  untuk client 1  dan client 2, dan untuk client 3  rata-rata  221ms.  Pada median Nginx  memperoleh  nilai  146ms  untuk client 1 dan client 2, dan untuk median client 3 dengan nilai  148ms.  Pada  Nginx  tidak  terdapat  data yang error ,  dapat  dilihat  dikolom error pada tabel  4.4  di  atas  masing-masing client memperoleh error 0.00%.
Dari  perbandingan  hasil  pengujian  Apache dan  Nginx  terhadap throughput 100,  500  dan 1000  detik  diatas,  dapat  dilihat  bahwa  Nginx memiliki  kinerja  lebih  baik.  Karena  respon Nginx ke setiap client -nya lebih cepat dari pada Apache,  sehingga  dapat  mengeksekusi request dari client lebih banyak dari pada Apache. Dan di Nginx tidak terjadi kegagalan respon terhadap masing-masing client -nya  berbanding  terbalik sama  Apache  yang  masih-masing client -nya terjadi kegagalan respon.
4. KESIMPULAN
Dari hasil penelitian dan pengujian response time yang dilakukan ke Nginx dapat disimpulkan  Nginx  lebih efisien waktu  atau lebih  cepat  dalam  melakukan  respon  terhadap client dari pada Apache. Dilihat dari nilai rata- rata response time pengujian  100,  1000  dan 10000 request , yang dimana pada response time 100 request Nginx memiliki rata-rata  ± 155ms dengan waktu total pengeksekusian ± 15 detik. Sedangkan pada Apache 100 request mendapatkan  nilai  rata-rata  ±  280ms  dengan waktu total eksekusi ± 28 detik. Pada response time 1000 nginx meiliki nilai rata-rata ± 225ms dengan  waktu  ±  3  menit  45  detik,  sedangkan pada  Apache  memiliki  nilai  rata-rata  ±  365ms dengan  waktu  ±  6  menit.  Pada response time
10000  nginx  memiliki  nilai  rata-rata  ±  266ms
dengan  waktu  ±    44  menit,  sedangkan  Apache memiliki nilai rata-rata ± 400ms dengan waktu ± 1 jam.
Pada  hasil  penelitian  dan  pengujian troughput ,  Nginx  masih  lebih  baik  dari  pada Apache. Terbukti Nginx lebih banyak melakukan response terhadap request client dari pada Apache. Bisa dilihat dari banyak respon yg di lakukan Nginx pada pengujian 100, 500 dan 1000 detik, yang mana pada pengujian 100 detik Nginx  dapat  mengeksekusi  ±  460 request sedangkan Apache hanya mampu mengeksekusi sebanyak  ±  280 request .  Pada  pengujian  500 detik  Nginx  dapat  merespon  ±  2400 request sedangkan Apache ± 1300 request . Begitu juga pada pengujian 1000 detik Nginx masih unggul dari  pada  Apache,  Nginx  dapat  melakukan respon ± 4500 request dan apache hanya ± 2500 request .

## DAFTAR PUSTAKA
[1] Netcraft, July 2017 Web Server Survey , Internet :
https://news.netcraft.com/archives/2017/07 /20/july-2017-web-server-survey.html
[2] Tanenbaum, Andrew S, Computer Networks,  Fifth  Edition .  Boston  :  Prentice Hall, 2011. [3] Dejonghe Derek, NGINX Cookbook
Advanced  Recipes  for  High  Performance Load Balancing, Sebastopol CA : O’Reilly,
2019
[4] ______,  Apache  HTTP  Server,  Internet  : https://id.wikipedia.org/wiki/Apache_HTT P_Server.