Raspberry Pi Home Server - Performance of your Web server with seat
Warning : This article has been automatically translated by Google Translate
Vous voulez améliorer les performances de votre serveur web, changer votre serveur web, mesurer l’impact d’un paramètre ? Alors vous pouvez utiliser Siege qui va vous aider à faire vos benchmarks.
Cet article s’inspire largement de celui de Jeremy Morgan qui fait d’excellents articles. Je voulais reprendre le même principe des tests et pouvoir tester différentes configuration. La première étape consiste donc à avoir une machine qui va exécuter Siege. Chez moi je l’ai installé sur un deuxième Raspberry Pi et sur mon MacBook Pro. Ci dessous, vous avez les instructions pour installer sur un Raspberry. Enlevez les instructions avec apt-get et vous aurez la version pour Mac OS.
- Mise à jour du système
apt-get update && apt-get -y upgrade
- Télécharger la dernière version de Siege
wget http://www.joedog.org/pub/siege/siege-latest.tar.gz
- Décompresser l’archive (chez moi la 3.0.3)
tar zxvf siege-latest.tar.gz cd siege-3.0.3
- Installer les paquets nécessaires
apt-get install -y gcc
- Configurer et compiler Siege
./configure make make install
- Générer la configuration par défaut. La commande suivante va créer un fichier .siegerc dans le répertoire home de l’utilisateur qui lance la commande.
siege.config
Maintenant si vous exécutez la commande
siege -C
vous pourrez afficher la configuration par défaut.
Vous voilà prêt pour vos tests !
Jeremy propose de passer par des fichiers pour tester les serveurs. J’ai donc utilisé le même principe. Je vais ajouter du PHP car au final je souhaite tester les fonctionnalités complètes. Et je vais y inclure des accès à une base SQLite avec un SELECT et l’affichage du résultat de la requête.
- Un petit fichier avec juste du texte en HTML et un en PHP
- Un gros fichier avec juste du texte en HTML et un en PHP
- Un fichier PHP qui effectue une requête dans une base SQLite
- Un fichier HTML qui affiche une image
Tous ces fichiers, vous pouvez les retrouver dans cette archive pihomeserver-siege.tar.gz. Vous pouvez la décompresser directement dans votre répertoire root du serveur.
Vous voilà donc prêt à tester votre serveur que vous aurez donc préalablement installé comme Nginx (via cet article) ou Pancake (via cet article).
N’oubliez pas d’installer SQLite !
apt-get install -y sqlite3
Vous pouvez vérifier que vos pages sont bien accessibles.
Pour enchainer les tests, je vous propose un petit script à installer sur la machine qui a Siege d’installé
#!/bin/sh # ############################################### # This script will test the webserver with Siege # # ############################################### # Parameters # Web server address TEST_SERVER="192.168.1.25" # Additionnal path to access pages TEST_PATH="pihomeserver-siege" # Test duration in minutes TEST_DURATION=1 # Number of concurrent connections TEST_CONCURRENT=200 # Log file TEST_LOG_FILE=stress-test.log # Pages to test PAGES="page1.pihome.html page2.pihome.php page3.pihome.html page4.pihome.php page5.pihome.php page6.pihome.html" # Scripts echo "Pi Home Server : performances testing of your web server"; if [ ! -f /usr/local/bin/siege ]; then echo "Siege not found in /usr/local/bin"; exit -1; fi # Delete old log file rm -f ${TEST_LOG_FILE} # Start Siege for each file in the list for PAGE in ${PAGES} do echo "Testing page : " ${PAGE}; siege --quiet --benchmark --time=${TEST_DURATION}m --concurrent=${TEST_CONCURRENT} --log=${TEST_LOG_FILE} --mark="Testing ${PAGE}" http://${TEST_SERVER}/${TEST_PATH}/page1.pihome.html > /dev/null 2>&1 done # Display log file cat ${TEST_LOG_FILE}
Vous pouvez exécuter le script qui va faire les six tests et en afficher les résultats. Voici ce que j’obtiens avec mon installation (basique) de Nginx :
Vous retrouvez dans l’ordre : la date/heure du test, le nombre de requêtes envoyées, le temps du test, le volume de données en Mb, le temps de réponse moyen du serveur, la vitesse de transmission, les accès concurrents, les requêtes réussies et les requêtes qui ont échoué.
Vous pouvez maintenant changer les paramètres de votre serveur et relancer les tests pour mesurer les impacts.
N’hésitez pas à partager vos résultas 🙂