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.

benchmark-010801

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.

  1. Mise à jour du système
    apt-get update && apt-get -y upgrade
  2. Télécharger la dernière version de Siege
    wget http://www.joedog.org/pub/siege/siege-latest.tar.gz
  3. Décompresser l’archive (chez moi la 3.0.3)
    tar zxvf siege-latest.tar.gz
    cd siege-3.0.3
  4. Installer les paquets nécessaires
    apt-get install -y gcc
  5. Configurer et compiler Siege
    ./configure
    make
    make install
  6. 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.

1._ssh

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.

192.168.1.25_pihomeserver-siege_page5.pihome.phpPour 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 :

1._bash_et_Modifier_l’article_‹_Raspberry_Pi_Home_Server_—_WordPress

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 🙂

Vous aimez cet article ? Supportez-moi sur Patreon!

You may also like...