Apache Vs Nginx : Round 2

1/52/53/54/55/5 (1 votes, moyenne: 1,00 sur 5)
Loading...
A

Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.


Bonjour à tous,

 

Aujourd’hui, j’ai ré-installé le serveur de The Abyss Project car vu que c’était mon serveur de test, j’avais pas mal de bordel et de configurations obsolètes dessus.

Mais après mon article d’hier sur un benchmark Apache Vs Nginx, je me suis dit : « Pourquoi est-ce que je ne ferais pas ces tests sur The Abyss Project au passage ? »

 

Et c’est exactement ce que j’ai fait, et voici mes résultats.

Versions utilisées :

Les versions utilisées sont les dernières versions stables disponibles dans les dépôts officiels de Debian 7.5.

  • Apache2 : 2.2.22-13+deb7u1
  • Apache2-mpm-worker : 2.2.22-13+deb7u1
  • Nginx : 1.6.0-1~wheezy
  • Php5-fpm : 5.4.4-14+deb7u9
  • WordPress : 3.9.1

 

Matériel utilisé :

 

cat /proc/cpuinfo (3 cœurs)

cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 16
model           : 2
model name      : AMD Opteron(tm) Processor 6128
stepping        : 3
cpu MHz         : 2000.068
cache size      : 512 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good tsc_reliable nonstop_tsc unfair_spinlock pni cx16 x2apic popcnt hypervisor lahf_lm cmp_legacy extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw
bogomips        : 4000.13
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

 

 

cat /proc/meminfo (4Gb)

cat /proc/meminfo
MemTotal:        4194304 kB
MemFree:         3368284 kB
Cached:            11808 kB
Buffers:               0 kB
Active:           351352 kB
Inactive:         435664 kB
Active(anon):     345708 kB
Inactive(anon):   429500 kB
Active(file):       5644 kB
Inactive(file):     6164 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:        131072 kB
SwapFree:         131072 kB
Dirty:                20 kB
Writeback:             0 kB
AnonPages:        775208 kB
Shmem:            470224 kB
Slab:              38976 kB
SReclaimable:      10492 kB
SUnreclaim:        28484 kB

 

cat /etc/debian_version && uname -r ( Debian 7.5 AMD64 )

root@debian:~# cat /etc/debian_version && uname -r
7.5
2.x

 

Analyse de la page de benchmark :

 

Voici une analyse avec pingdom tools (cliquez pour voir l’analyse)

 

Un screenshot de la page :

screenshot

 

 

Configuration de Nginx, Apache2 et php5-fpm :

 

Les configurations sont de « base ». Elles n’ont pas étés modifiées après l’installation.

Toutefois, le worker process correspond bien à 3 dans le Reverse Proxy Nginx.

 

 

Serveur de benchmark :

 

Le serveur de benchmark est un vps lp2 de firstheberg

2 Coeurs, 2Gb de ram

Connexion 100 Mbps vers le serveur de The Abyss Project

 

 

Le test :

Voici la commande utilisée :

siege -d5 -c300 -t3M

Elle permet de simuler 300 utilisateurs qui effectueront des requêtes entre toutes les 0 et 5 secondes pendant 3 minutes.

 

Les résultats Apache Vs Nginx :

 

Apache 2 MPM WORKER :

siege -d5 -c300 -t3M http://www.abyssproject.net/
 ** SIEGE 2.70
 ** Preparing 300 concurrent users for battle.
 The server is now under siege...
 Lifting the server siege... done.
 Transactions: 15850 hits
 Availability: 100.00 %
 Elapsed time: 179.76 secs
 Data transferred: 127.21 MB
 Response time: 0.89 secs
 Transaction rate: 88.17 trans/sec
 Throughput: 0.71 MB/sec
 Concurrency: 78.47
 Successful transactions: 15850
 Failed transactions: 0
 Longest transaction: 12.76
 Shortest transaction: 0.03

 

HTOP à 2 minutes
HTOP à 2 minutes

 

 

 

Reverse Proxy Nginx 1.6 + Apache 2 MPM WORKER :

siege -d5 -c300 -t3M http://www.abyssproject.net/
 ** SIEGE 2.70
 ** Preparing 300 concurrent users for battle.
 The server is now under siege...
 Lifting the server siege... done.
 Transactions: 16258 hits
 Availability: 100.00 %
 Elapsed time: 179.75 secs
 Data transferred: 130.49 MB
 Response time: 0.82 secs
 Transaction rate: 90.45 trans/sec
 Throughput: 0.73 MB/sec
 Concurrency: 74.55
 Successful transactions: 16258
 Failed transactions: 0
 Longest transaction: 6.74
 Shortest transaction: 0.04

 

 

HTOP à 2 minutes
HTOP à 2 minutes

 

 

 

Conclusion :

 

On gagne légèrement en performances avec un Reverse Proxy Nginx sur un wordpress lourd, mais ce qui est intéressant, c’est la plus longue requête.

12,76 secondes sur Apache 2 contre 6,74 secondes avec un reverse proxy nginx par dessus !

Bon je croit que j’ai fini avec mon duel Apache Vs Nginx.

 

Pour savoir si Nginx va vraiment vous faire gagner en performance, la seule solution c’est de faire des tests avec votre application sur le serveur qui va l’héberger.

 

A propos de l'auteur

Nicolas Simond

Ingénieur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

Subscribe
Notify of
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

0 Commentaires
Inline Feedbacks
View all comments