Tanya: Apache 2.4 vs Nginx


Status
Not open for further replies.

mustafaramadhan

Hosting Guru
buat para suhu" dimari.
mau tanya, sudah ada yang coba apache 2.4? lebih cepatkah? "memory wise"? bisa berbagi disini?

terima kasih :)


ref: Apache 2.4 Takes Direct Aim At Nginx - Slashdot
Soal lebih cepat saya kok ragu. Menyamai mungkin.

Kunci permasalahan ada di bagaimana webserver menangani proses php. Sekarang ini yang dianggap 'terbaik' melalui mekanisme php-fpm. Baik nginx dan apache (juga lighttpd setahu saya) bisa memakai mekanisme ini. Celakanya apache 'beranggapan' semua 'request' sebagai 'php process' (baik itu php selaku dynamic content maupun image/video/dll yang sebenarnya static files) dan ini berakibat proses menjadi lambat.

Keunggulan apache adalah bisa menangani .htaccess/.htprotect. Karena tidak bisa menangani .htaccess ini maka semua diletakkan pada file config (jika ada yang salah dalam penulisan config maka nginx tidak bisa running). Oleh karena itu 'jalan-tengah' yang dipilih adalah nginx-proxy (nginx di front-end dan menangani static files dan apache di back-end untuk menangani dynamic files).

Httpd 2.4 menuntut compile ulang php agar php 'mengerti' httpd.
 

Doel

Beginner 2.0
wow, menarik...

Celakanya apache 'beranggapan' semua 'request' sebagai 'php process' (baik itu php selaku dynamic content maupun image/video/dll yang sebenarnya static files) dan ini berakibat proses menjadi lambat.

apache 2.4 seperti ini?

untuk nginx (fronted) dan apache 2.2 (backend), yup... ini opsi yang saya pilih sekarang. aplikasi/script di proxy ke apache, dan semua statik di-handle oleh nginx.

tadinya sempat menggunakan duo varnish (frontend) dan nginx (backend). tapi yang jadi masalah buat saya ketika itu:
- PHP-FPM = CPU spike. entah, mungkin saya aja yang belum pas/ketemu settingannya.
- varnish agak susah mengontrol cache-nya. bandel. semua dihantam jadi cache.

lalu, untuk pemakaian resource memory sendiri untuk apache 2.4 bagaimana, pak? apa boros?
 

mustafaramadhan

Hosting Guru
wow, menarik...



apache 2.4 seperti ini?

untuk nginx (fronted) dan apache 2.2 (backend), yup... ini opsi yang saya pilih sekarang. aplikasi/script di proxy ke apache, dan semua statik di-handle oleh nginx.

tadinya sempat menggunakan duo varnish (frontend) dan nginx (backend). tapi yang jadi masalah buat saya ketika itu:
- PHP-FPM = CPU spike. entah, mungkin saya aja yang belum pas/ketemu settingannya.
- varnish agak susah mengontrol cache-nya. bandel. semua dihantam jadi cache.

lalu, untuk pemakaian resource memory sendiri untuk apache 2.4 bagaimana, pak? apa boros?
Sepintas lalu apache 2.4 masih sama.

Saya ada kembangkan nginx (saya namakan 'nginx-special') dimana nginx ini sudah include purge_cache module. Dengan module ini nginx cache bisa dimanage dari apps (sudah ada di wordpress, antara lain plugins 'nginx manager').

Skenarionya, semua content akan di-cache sama nginx. Jika ada content yang berubah maka 'nginx manager' akan minta ke purge_cache untuk hapus cache dari content yang berubah tersebut.

Pengujian saya, memanfaatkan gzip compress pada nginx + enable cache meningkatkan kecepatan akses 3-7x diuji dari local.

Saya tidak berharap terlalu banyak pada httpd 2.4 kecuali management memory yang lebih baik.
 

Doel

Beginner 2.0
kecepatan akses = response time ? delay dari sejak client melakukan koneksi (membuka socket?) sampai nginx meresponse (send) data?

pendapat pribadi, maap kalau salah, dari pengalaman beberapa hari oprek si nginx, sepertinya nginx ini agak sedikit lambat pada awal response (delay - beberapa puluh/ratus .ms). tapi begitu sudah tercache, kencang sekali + fitur bisa melimit / burst request... :)

jadi tidak sabar. ditunggu rilis "nginx special"-nya :)


note:
omong", hasil benchmark nginx + apache 2.2 sejauh yang saya mampu (masih kurang stabil. kadang bisa naik sampai 1-2 detik untuk page load time-nya). mungkin bisa saling berbagi untuk settingan nginx-nya pak (seandainya berkenan) :)
 

mustafaramadhan

Hosting Guru
kecepatan akses = response time ? delay dari sejak client melakukan koneksi (membuka socket?) sampai nginx meresponse (send) data?

pendapat pribadi, maap kalau salah, dari pengalaman beberapa hari oprek si nginx, sepertinya nginx ini agak sedikit lambat pada awal response (delay - beberapa puluh/ratus .ms). tapi begitu sudah tercache, kencang sekali + fitur bisa melimit / burst request... :)

jadi tidak sabar. ditunggu rilis "nginx special"-nya :)


note:
omong", hasil benchmark nginx + apache 2.2 sejauh yang saya mampu (masih kurang stabil. kadang bisa naik sampai 1-2 detik untuk page load time-nya). mungkin bisa saling berbagi untuk settingan nginx-nya pak (seandainya berkenan) :)

1. Nginx-special sudah ada di https://github.com/mustafaramadhan/kloxo/tree/rpms-release
2. Cenderung bukan 'response time' tapi seberapa banyak halaman bisa diproses (pakai ApacheBench)
3. Saya tidak terlalu peduli 'response time'. Pada setting tertentu ianya 'sembuh' dengan sendirinya (artinya response cepat)
 

Doel

Beginner 2.0
@pak dino:
terima kasih, pak dino! :)


@pak mustafa:
maap, baru selesai konfigurasi di VPS. saya coba pakai "nginx-special" dari pak MR (belum semua dikonfigurasi, masih diraba-raba. hehehe)

posisi: nginx (frontend), apache 2.2 (backend), php + apc, mysql
website: wordpress standar, tanpa plugin cache (TKP)

Code:
$ ab -n 100000 -c 200 http://localhost/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Finished 100000 requests


Server Software:        nginx
Server Hostname:        localhost
Server Port:            80

Document Path:          /
Document Length:        9648 bytes

Concurrency Level:      200
Time taken for tests:   8.547299 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      985285650 bytes
HTML transferred:       965079792 bytes
Requests per second:    11699.60 [#/sec] (mean)
Time per request:       17.095 [ms] (mean)
Time per request:       0.085 [ms] (mean, across all concurrent requests)
Transfer rate:          112572.75 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   1.8      2      12
Processing:     1   14   2.8     15      31
Waiting:        0    4   1.6      4      17
Total:          5   16   2.7     17      31

Percentage of the requests served within a certain time (ms)
  50%     17
  66%     18
  75%     18
  80%     18
  90%     20
  95%     21
  98%     22
  99%     24
 100%     31 (longest request)


Memory setelah benchmark

Code:
$ free -m
             total       used       free     shared    buffers     cached
Mem:           256        127        128          0          0          0
-/+ buffers/cache:        127        128
Swap:            0          0          0


* spek VPS: OpenVZ, RAM 256 (no-vswap), 4 Core CPU Xeon E31230 @ 3.20GHz
 
Status
Not open for further replies.

Top