Benchmark d'un serveur Web Raspberry PI 2 B+ vs Raspberry PI 3
Intéressé pour créer un API avec Ruby on Rails?
Jette un coup d'œil à mon livre: API on Rails 6. Tu peux télécharger une version gratuite au format PDF sur Github. Si tu aimes mon travail tu peux acheter un version payante sur Leanpub.
L’occasion de la migration de mon serveur Apache depuis mon Raspberry PI 2 B+ vers mon Raspberry PI 3 est l’occasion de mettre ma pierre à l’édifice des Benchmarks existants. Je n’ai pas la prétention d’apporter un comparatif complet mais juste de proposer mes résultats.
Sortie à un an d’intervalle, la principale amélioration du RPI3 est d’amener une arcitecture 64 bits.
Ma configuration
Cette comparaison ne se base pas uniquement sur le Hardware car les software installés sur l’un ou sur l’autre sont différents (notamment pour la base de donnés dont l’un est sur MySQL et l’autre sur MariaDB). Sinon tous les deux sont des serveurs Apache faisant tourner des applications web Ruby on Rails avec RVM (gestionnaire de version Ruby) & Passenger (bibliothèque permettant de faire fonctionner des applications Ruby sous Apache).
- Raspberry PI 2 B+
- Raspbian GNU/Linux 8.0 (jessie)
- Linux 4.1.19-v7+ armv7l GNU/Linux
- Apache/2.4.10 (Raspbian)
- Phusion Passenger 5.1.2
- MySQL 5.5.57-0+deb8u1 (Raspbian)
- Raspberry PI 3
- Raspbian GNU/Linux 9.1 (stretch)
- Linux 4.9.41-v7+ armv7l GNU/Linux
- Apache/2.4.25 (Raspbian)
- Phusion Passenger 5.1.8
- MariaDB 10.1.23-MariaDB-9+deb9u1 Raspbian 9.0
Le script
Pour le script, je me suis basé sur un script bash trouvé sur internet qui utilise un simple curl
repété plusieurs fois.
#!/bin/bash
# on spécifie l'URL
URL="$1"
# on spécifie le nombre de requêtes
MAX_RUNS="$2"
SUM_TIME="0"
i="0"
while [ $i -lt $MAX_RUNS ]; do
# on lance la requête en récupérant le temps de réponse
TIME=`curl $URL -o /dev/null -s -w %{time_total}`
# on ajoute le résultat au précédent
TIME="${TIME/,/.}"
SUM_TIME=`echo "scale=5; $TIME + $SUM_TIME" | bc`
i=$[$i+1]
done
# on fait la moyenne et on affiche
TIME_AVERAGE=`echo "scale=5; $SUM_TIME / $MAX_RUNS" | bc`
echo "Sum: $SUM_TIME"
echo "Avg: $TIME_AVERAGE"
Les résultats
Voici donc le résultat avec mon Raspberry PI 2 B+ avec 50 requêtes.
./average_reponse_time.sh http://raspberry-cook.fr/recipes 50
Sum: 38.278
Avg: .76556
./average_reponse_time.sh http://raspberry-cook.fr/recipes 50
Sum: 34.014
Avg: .68028
Voici donc le résultat avec mon Raspberry PI 3 B+ avec 50 requêtes.
./average_reponse_time.sh http://192.168.1.103/recipes 50
Sum: 19.812
Avg: .39624
./average_reponse_time.sh http://192.168.1.103/recipes 50
Sum: 19.766
Avg: .39532
Conclusion
Je ne m’attendais pas à une différence aussi importante. Dans mon cas, le RPI3 répond 1,7 fois plus rapidement que le RPI2!
Néanmoins, ces résultats ne sont pas uniquement dus à la différence au niveau du matériel mais aussi à la différence des logiciels installés.
Voir les autres articles liés
Participez au développement de votre navigateur preéferé
Participez au développement de votre navigateur preéferé