Tanya: Apache 2.4 vs Nginx

Discussion in 'VPS (Virtual Private Server)' started by Doel, 20 Sep 2012.

Thread Status:
Not open for further replies.
  1. Doel

    Doel Beginner 2.0

    Messages:
    72
    Likes Received:
    26
    Trophy Points:
    18
  2. mustafaramadhan

    mustafaramadhan Hosting Guru

    Messages:
    3,237
    Likes Received:
    857
    Trophy Points:
    113
    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.
     
  3. Doel

    Doel Beginner 2.0

    Messages:
    72
    Likes Received:
    26
    Trophy Points:
    18
    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?
     
  4. mustafaramadhan

    mustafaramadhan Hosting Guru

    Messages:
    3,237
    Likes Received:
    857
    Trophy Points:
    113
    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 likes this.
  5. Doel

    Doel Beginner 2.0

    Messages:
    72
    Likes Received:
    26
    Trophy Points:
    18
    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) :)
     
  6. dino

    dino Beginner 2.0

    Messages:
    37
    Likes Received:
    2
    Trophy Points:
    8
    Doel likes this.
  7. mustafaramadhan

    mustafaramadhan Hosting Guru

    Messages:
    3,237
    Likes Received:
    857
    Trophy Points:
    113
    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 likes this.
  8. Doel

    Doel Beginner 2.0

    Messages:
    72
    Likes Received:
    26
    Trophy Points:
    18
    @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
     
Loading...
Thread Status:
Not open for further replies.

Share This Page

Loading...