Benchmark Typo + RubyEE + Passenger VS Typo + Thin + Nginx VS Wordpress + Apache

Le 16 juin 2008 à 20h13 | Publié sous | 1 commentaire

French version below

I’m repassing the bench since hardware configuration made the gap between the 2 Typo instances too wide

After deplying Ruby Enterprise Edition along with Passenger 1.9.0 on this server, Cyril Mougel and I have decided to bench his configuration versus mine.

Here is the configuration :

  • Cyril is running a Typo on 7 Nginx instances along with 3 Thin application server.
  • I’m running a Typo on an Apache with mod_rails.
  • Wordpress is running on Apache with mod_php 5 and is jailed for security purpose. PHP configuration file was finely tuned for production mode.

All tests were done on the same machine : a FreeBSD 2.2ghz dual core with 4GB ram. The application is runing alone during the whole test.

Typo + Nginx

Server Software: nginx/0.5.36 Server Hostname: typosphere.org Server Port: 80 Document Path: /accounts/login Document Length: 1751 bytes Concurrency Level: 10 Time taken for tests: 4.365451 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 2090000 bytes HTML transferred: 1751000 bytes Requests per second: 229.07 [#/sec] (mean) Time per request: 43.655 [ms] (mean) Time per request: 4.365 [ms] (mean, across all concurrent requests) Transfer rate: 467.53 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 4 4 4.0 4 35 Processing: 11 38 27.3 30 200 Waiting: 10 37 27.3 30 200 Total: 15 42 27.6 35 204

Wordpress + Apache

Server Software: Apache/2.2.8 Server Hostname: emmanueldetaillac.fr Server Port: 80 Document Path: /wp-login.php Document Length: 1895 bytes Concurrency Level: 10 Time taken for tests: 82.477327 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 2321000 bytes HTML transferred: 1895000 bytes Requests per second: 12.12 [#/sec] (mean) Time per request: 824.773 [ms] (mean) Time per request: 82.477 [ms] (mean, across all concurrent requests) Transfer rate: 27.47 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 4 4 0.1 4 6 Processing: 168 818 161.1 815 1516 Waiting: 167 813 160.9 810 1512 Total: 172 822 161.1 819 1520

Typo + Apache + mod_rails + RubyEE

Server Software: Apache Server Hostname: typosphere.org Server Port: 80 Document Path: /accounts/login Document Length: 1751 bytes Concurrency Level: 10 Time taken for tests: 4.330938 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 2144000 bytes HTML transferred: 1751000 bytes Requests per second: 230.90 [#/sec] (mean) Time per request: 43.309 [ms] (mean) Time per request: 4.331 [ms] (mean, across all concurrent requests) Transfer rate: 483.27 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 4 4 0.2 4 6 Processing: 11 38 21.0 33 142 Waiting: 11 36 20.8 31 141 Total: 15 42 21.0 37 146

Who said Apache on Rails was slow ?

Version française

Promis, après ce billet, j’arrête de parler de Ruby on Rails jusqu’à la prochaine release de Typo.

Les disparités matérielles entre Cyril et moi étant trop grandes, j’ai relancé tous les tests sur la même machine.

Suite au déploiement de Ruby Enterprise Edition sur la machine qui héberge ce blog, Cyril Mougel et moi avons décidé d’effectuer un benchmark afin de savoir qui d’Apache + mod_rails ou de Thin + Nginx serait le plus rapide. Pour le fun, j’y ai ajouté un blog Wordpress tournant sur le même serveur que mon Typo.

La configuration utilisée est la suivante :

  • Cyril fait tourner son Typo sous 7 instances de Nginx et 3 instances de Thin.
  • Je fais tourner mon Typo sur une instance d’Apache avec mod_rails.
  • Wordpress tourne sous Apache avec mod_php 5, dans une jail pour des raisons de sécurité. Le fichier de configuration de PHP a été finetuné pour un service de production.

L’ensemble des tests a été fait sur la même machine : un FreeBSD 2.2ghz dual Core avec 4Go de RAM. L’application tourne seule pendant toute la durée du test.

Typo + Nginx

Server Software: nginx/0.5.36 Server Hostname: typosphere.org Server Port: 80 Document Path: /accounts/login Document Length: 1751 bytes Concurrency Level: 10 Time taken for tests: 4.365451 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 2090000 bytes HTML transferred: 1751000 bytes Requests per second: 229.07 [#/sec] (mean) Time per request: 43.655 [ms] (mean) Time per request: 4.365 [ms] (mean, across all concurrent requests) Transfer rate: 467.53 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 4 4 4.0 4 35 Processing: 11 38 27.3 30 200 Waiting: 10 37 27.3 30 200 Total: 15 42 27.6 35 204

Wordpress + Apache

Server Software: Apache/2.2.8 Server Hostname: emmanueldetaillac.fr Server Port: 80 Document Path: /wp-login.php Document Length: 1895 bytes Concurrency Level: 10 Time taken for tests: 82.477327 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 2321000 bytes HTML transferred: 1895000 bytes Requests per second: 12.12 [#/sec] (mean) Time per request: 824.773 [ms] (mean) Time per request: 82.477 [ms] (mean, across all concurrent requests) Transfer rate: 27.47 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 4 4 0.1 4 6 Processing: 168 818 161.1 815 1516 Waiting: 167 813 160.9 810 1512 Total: 172 822 161.1 819 1520

Typo + Apache + mod_rails + RubyEE

Server Software: Apache Server Hostname: typosphere.org Server Port: 80 Document Path: /accounts/login Document Length: 1751 bytes Concurrency Level: 10 Time taken for tests: 4.330938 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 2144000 bytes HTML transferred: 1751000 bytes Requests per second: 230.90 [#/sec] (mean) Time per request: 43.309 [ms] (mean) Time per request: 4.331 [ms] (mean, across all concurrent requests) Transfer rate: 483.27 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 4 4 0.2 4 6 Processing: 11 38 21.0 33 142 Waiting: 11 36 20.8 31 141 Total: 15 42 21.0 37 146

And the winner is… de peu certes, mais bon, qui a dit qu’Apache était lent sur Rails ?

Commenter »

  1. Semion Sidorenko about 13 hours later:

    Ce serait un peu plus parlant avec des graphiques, non ? Plutôt que de scroller sur les résultats en bas, après en haut, après en bas, etc, à moins d’avoir une énorme résolution :)

Laisser un commentaire

Merci de vous exprimer dans un français correct. Les commentaires déplacés, injurieux et le spam seront supprimés.

Les trackbacks sont fermés pour cause de spam.