Bastien Louche

Systèmes – Réseaux – Sécurité – Web | Tutoriels | CV
  • Accueil
  • CV
  • Contactez-moi

[Tutoriels] Benchmarker un serveur web Apache 2 avec Apachebench

Bastien Louche | 11/05/2010 | 10:52

Aujourd’hui on va voir comment utiliser un outil qui permet de benchmarker un serveur web Apache 2.

Pour le tutoriel on utilisera 2 serveurs, un avec Apache 2, et un avec Apachebench. Comme d’habitude, le système de base est Debian Lenny.

On installe Apachebench via un apt-get :

apt-get install apache2-utils

La commande « ab » est maintenant disponible, elle possède 2 principales options qui sont :

-n : Nombre total de requêtes à exécuter

-c : Nombre de requêtes exécuté en parallèle

On lance la commande suivante pour tester, mais vous pouvez adapter les valeurs des options à votre convenance :

ab -n 30000 -c 30 http://178.32.127.50/

On obtiens donc le résultat suivant :

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 178.32.127.50 (be patient)
Completed 3000 requests
Completed 6000 requests
Completed 9000 requests
Completed 12000 requests
Completed 15000 requests
Completed 18000 requests
Completed 21000 requests
Completed 24000 requests
Completed 27000 requests
Completed 30000 requests
Finished 30000 requests

Server Software:        Apache/2.2.9
Server Hostname:        178.32.127.50
Server Port:            80

Document Path:          /
Document Length:        45 bytes

Concurrency Level:      30
Time taken for tests:   3.277 seconds
Complete requests:      30000
Failed requests:        0
Write errors:           0
Total transferred:      9570000 bytes
HTML transferred:       1350000 bytes
Requests per second:    9154.42 [#/sec] (mean)
Time per request:       3.277 [ms] (mean)
Time per request:       0.109 [ms] (mean, across all concurrent requests)
Transfer rate:          2851.82 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    1   0.4      1       6
Processing:     0    2   1.3      2      19
Waiting:        0    2   1.0      2      16
Total:          1    3   1.4      3      19

Percentage of the requests served within a certain time (ms)
50%      3
66%      3
75%      4
80%      4
90%      5
95%      5
98%      6
99%      8
100%     19 (longest request)

Vous pouvez maintenant analyser votre résultat pour améliorer vos performances en optimisant votre serveur web Apache 2.

Il existe d’autres solutions pour benchmarker un serveur Apache 2, et notamment Siege (Vous trouverez un tutoriel pour cette application sur Tux-planet), mais aussi httperf ou http_load.

Sources et Informations supplémentaires : [1] [2]

Commentaires
Pas de Commentaires »
Catégories
Tutoriels
Tags
Apache, Apachebench, Serveur, Web
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

[Tutoriels] Configuration d’un cluster Apache 2 avec HAProxy

Bastien Louche | 03/05/2010 | 14:41

J’ai décidé d’utiliser les machines virtuelles offertes par OVH pendant la phase de test de son offre Cloud Computing, pour vous faire un tutoriel sur la configuration d’un cluster Apache 2 avec HAProxy pour la partie équilibrage de charges.

Il faut donc 3 serveurs, 1 pour HAProxy, et minimum 2 pour le cluster Apache 2, on utilisera un système vierge sous Debian Lenny.

Voici donc un rapide schéma de la mise en place :

Les adresses IP utilisées sont des IP publiques appartenant au Cloud Computing d’OVH, il faudra donc les modifier pendant vos configurations personnelles.

Dans un premier temps on va configurer les serveurs Apache 2 (web1-cloud et web2-cloud) :

apt-get install apache2

Ensuite on créer le fichier qui sera testé par HAProxy pour vérifier que le serveur Apache 2 est opérationnel :

touch /var/www/haproxytest.txt

On va alors modifier légérement la configuration de : 

nano /etc/apache2/sites-available/default

Pour ajouter une nouvelle ligne et remplacer le CustomLog afin d’éviter que les logs d’Apache 2contiennent les checks de HAProxy :

SetEnvIf Request_URI « ^/haproxytest\.txt$ » dontlog
CustomLog /var/log/apache2/access.log combined env=!dontlog

On peut maintenant redémarrer Apache 2, les serveurs du cluster sont configurés :

/etc/init.d/apache2 restart

On se connecte sur le serveur qui va s’occuper de HAProxy :

apt-get install haproxy

On supprime la configuration par défaut de HAProxy et on re-créer le fichier pour éditer notre configuration :

rm -f /etc/haproxy/haproxy.cfg
nano /etc/haproxy/haproxy.cfg

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        #log loghost    local0 info
        maxconn 4096
        #debug
        #quiet
        user haproxy
        group haproxy

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen blweb 178.32.121.84:80
       mode http
       stats enable
       stats auth user:password
       balance roundrobin
       cookie SERVID prefix
       option httpclose
       option forwardfor
       option httpchk HEAD /haproxytest.txt HTTP/1.0
       server web1-cloud 178.32.114.13:80 cookie A check
       server web2-cloud 178.32.121.231:80 cookie B check

On peut maintenant lancer HAProxy :

/etc/init.d/haproxy start

Vous pouvez maintenant vous rendre sur l’adresse IP de votre serveur HAProxy via le navigateur de votre choix pour admirer le résultat !

Une petite astuce consiste à modifier le fichier /var/www/index.html pour mieux visualiser quel serveur a répondu à chaque rafraichissement de la page.

A noter que dans notre configuration nous utilisons le paramètre stats enable qui permet à l’aide des identifiants de stats auth de se connecter via http://IP-HAProxy/haproxy?stats à une interface web présentant les statistiques d’utilisation de HAProxy et des différents serveurs Apache 2.

Sources et Informations supplémentaires : [1] [2]

Commentaires
31 Commentaires »
Catégories
Tutoriels
Tags
Apache, Debian, HAProxy, Linux, Serveur, Web
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Recherche

Réseaux sociaux

CV Bastien Louche

Pages

  • CV
  • Contactez-moi

Catégories

  • Tutoriels (8)

Commentaires récents

  • cheikh dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • Bastien Louche dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • imen dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • Simo, dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • Pit dans [Tutoriels] Configuration d’un cluster Apache 2 avec HAProxy

Mots-clefs

Apache Apachebench Blog Cherokee Debian DNS DNSSEC HAProxy IDS IP Linux Logiciels Libres Nginx Réseaux Serveur Snort Systèmes Sécurité Web Windows YOURLS