Date post: | 17-Jul-2015 |
Category: |
Technology |
Upload: | rodolphe-quiedeville |
View: | 306 times |
Download: | 0 times |
de 1 à 1 million avec Tsung
Rodolphe Quiédeville
Confoo - Montréal
19 février 2015
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 1 / 59
#mylife
Admin/Sys tendance DevOps depuis 20 ans84000 heures de connections au webNourri au logiciel libre exclusivementContributeur à TsungFormateur auprès de Upstream-UniversityResponsable Performance chez Novapost / PeopleDocConsultant sur les performances des SI(G)
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 2 / 59
Qu’est-ce qu’un test de performance ?
charge, volumétrie donnée
résistance, au desssus des limitesvieillissement, dans 2 mois, dans 5 ansmontée en charge, ouverture des nouveaux marchés
Simulation au plus près du réel des conditions d’exploitation d’unsystème.
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 3 / 59
Qu’est-ce qu’un test de performance ?
charge, volumétrie donnéerésistance, au desssus des limites
vieillissement, dans 2 mois, dans 5 ansmontée en charge, ouverture des nouveaux marchés
Simulation au plus près du réel des conditions d’exploitation d’unsystème.
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 3 / 59
Qu’est-ce qu’un test de performance ?
charge, volumétrie donnéerésistance, au desssus des limitesvieillissement, dans 2 mois, dans 5 ans
montée en charge, ouverture des nouveaux marchés
Simulation au plus près du réel des conditions d’exploitation d’unsystème.
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 3 / 59
Qu’est-ce qu’un test de performance ?
charge, volumétrie donnéerésistance, au desssus des limitesvieillissement, dans 2 mois, dans 5 ansmontée en charge, ouverture des nouveaux marchés
Simulation au plus près du réel des conditions d’exploitation d’unsystème.
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 3 / 59
Qu’est-ce qu’un test de performance ?
charge, volumétrie donnéerésistance, au desssus des limitesvieillissement, dans 2 mois, dans 5 ansmontée en charge, ouverture des nouveaux marchés
Simulation au plus près du réel des conditions d’exploitation d’unsystème.
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 3 / 59
Ce n’est pas
!= test unitaire
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 4 / 59
Ce n’est pas
!= test unitaire!= test fonctionnel
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 5 / 59
Ce n’est pas
!= test unitaire!= test fonctionnel!= test de conformité
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 6 / 59
Ce n’est pas
!= test unitaire!= test fonctionnel!= test de conformité
Ces tests ont été réalisés avant d’effectuer les tests de charge ; aurisque de pertes de temps et de pertinence dans l’analyse desrésultats.
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 7 / 59
A quoi cela sert-il ?
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 8 / 59
La situation
client mécontent
boss encore pluschef de projet serre les dentssoirée de foutue
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 10 / 59
La situation
client mécontentboss encore plus
chef de projet serre les dentssoirée de foutue
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 10 / 59
La situation
client mécontentboss encore pluschef de projet serre les dents
soirée de foutue
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 10 / 59
La situation
client mécontentboss encore pluschef de projet serre les dentssoirée de foutue
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 10 / 59
Quelle peut être la ou les cause(s) ?
sur consommation de CPUsaturation de mémoiresaturation des iolock sur la base de donnéessaturation lien réseaufilesystem plein...
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 12 / 59
Le site préféré des développeurs ?
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 13 / 59
chez-moi-ca-marche.com
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 14 / 59
Cas d’école
plusieurs dizaines de photos sur la home
images servies par un cgisources des images non maitriséespas de limites sur la taille des imagesresize des images à la voléepas de stockage de l’image retaillée
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 15 / 59
Cas d’école
plusieurs dizaines de photos sur la homeimages servies par un cgi
sources des images non maitriséespas de limites sur la taille des imagesresize des images à la voléepas de stockage de l’image retaillée
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 15 / 59
Cas d’école
plusieurs dizaines de photos sur la homeimages servies par un cgisources des images non maitrisées
pas de limites sur la taille des imagesresize des images à la voléepas de stockage de l’image retaillée
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 15 / 59
Cas d’école
plusieurs dizaines de photos sur la homeimages servies par un cgisources des images non maitriséespas de limites sur la taille des images
resize des images à la voléepas de stockage de l’image retaillée
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 15 / 59
Cas d’école
plusieurs dizaines de photos sur la homeimages servies par un cgisources des images non maitriséespas de limites sur la taille des imagesresize des images à la volée
pas de stockage de l’image retaillée
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 15 / 59
Cas d’école
plusieurs dizaines de photos sur la homeimages servies par un cgisources des images non maitriséespas de limites sur la taille des imagesresize des images à la voléepas de stockage de l’image retaillée
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 15 / 59
503 Service unavalaible
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 16 / 59
chez-moi-ca-marche.com
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 17 / 59
mais pas en prod !
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 18 / 59
So 90’s, now the web is 2.0 !
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 19 / 59
Cas d’école, le retourSituation : problème de performance sur l’affichage de la homepageen production
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 20 / 59
Cas d’école, le retoursituation : problème de performance sur l’affichage de la homepage enproduction
lecture de logs# grep -c "GET / " access.log
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 21 / 59
Cas d’école, le retoursituation : problème de performance sur l’affichage de la homepage enproduction
lecture de logs# grep -c "GET / " access.log
# 23 000
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 22 / 59
Cas d’école, le retoursituation : problème de performance sur l’affichage de la homepage enproduction
lecture de logs# grep -c "GET / " access.log
# 23 000
# grep -c "GET /api/v1/foo?format=json" access.log
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 23 / 59
Cas d’école, le retoursituation : problème de performance sur l’affichage de la homepage enproduction
lecture de logs# grep -c "GET / " access.log
# 23 000
# grep -c "GET /api/v1/foo?format=json" access.log
# 300 000
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 24 / 59
Chargeons Tsung de nous aider
aide-toi, le ciel t’aidera
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 25 / 59
Chargeons Tsung de nous aideraide-toi, le ciel t’aidera
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 25 / 59
Tsung
début développement en 2001écrit en Erlangpublié sous GNU GPL V2projet Idealx initialement nommé IDX-Tsunamitest de serveur XMPPversion 1.5.1 stable, 1.6.0 bientôt
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 26 / 59
Caractéristiques
multi protocoles
scalablepas d’interface graphiquescenarios XML avec validation XSLextensible par pluginssondes de monitoringmodèle Stochastique avec distribution de Poisson
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 27 / 59
Caractéristiques
multi protocolesscalable
pas d’interface graphiquescenarios XML avec validation XSLextensible par pluginssondes de monitoringmodèle Stochastique avec distribution de Poisson
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 27 / 59
Caractéristiques
multi protocolesscalablepas d’interface graphique
scenarios XML avec validation XSLextensible par pluginssondes de monitoringmodèle Stochastique avec distribution de Poisson
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 27 / 59
Caractéristiques
multi protocolesscalablepas d’interface graphiquescenarios XML avec validation XSL
extensible par pluginssondes de monitoringmodèle Stochastique avec distribution de Poisson
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 27 / 59
Caractéristiques
multi protocolesscalablepas d’interface graphiquescenarios XML avec validation XSLextensible par plugins
sondes de monitoringmodèle Stochastique avec distribution de Poisson
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 27 / 59
Caractéristiques
multi protocolesscalablepas d’interface graphiquescenarios XML avec validation XSLextensible par pluginssondes de monitoring
modèle Stochastique avec distribution de Poisson
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 27 / 59
Caractéristiques
multi protocolesscalablepas d’interface graphiquescenarios XML avec validation XSLextensible par pluginssondes de monitoringmodèle Stochastique avec distribution de Poisson
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 27 / 59
Caractéristiques
multi protocolesscalablepas d’interface graphiquescenarios XML avec validation XSLextensible par pluginssondes de monitoringmodèle Stochastique avec distribution de Poisson
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 28 / 59
Protocoles supportés en 1.5.1
HTTP/HTTPSWebsocketJabber/XMPPWebdavAMQP / MQTT / ZeroMQLDAPMySQLPostgreSQL
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 29 / 59
Principe de fonctionnement
un contrôleur
0 à N injecteursune cibleun scenario
, des scenarii
des jeux de données de test
, pas de dump de production
des logsdes rapports de résultats
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 30 / 59
Principe de fonctionnement
un contrôleur0 à N injecteurs
une cibleun scenario
, des scenarii
des jeux de données de test
, pas de dump de production
des logsdes rapports de résultats
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 30 / 59
Principe de fonctionnement
un contrôleur0 à N injecteursune cible
un scenario
, des scenarii
des jeux de données de test
, pas de dump de production
des logsdes rapports de résultats
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 30 / 59
Principe de fonctionnement
un contrôleur0 à N injecteursune cibleun scenario
, des scenariides jeux de données de test
, pas de dump de production
des logsdes rapports de résultats
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 30 / 59
Principe de fonctionnement
un contrôleur0 à N injecteursune cibleun scenario, des scenarii
des jeux de données de test
, pas de dump de production
des logsdes rapports de résultats
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 30 / 59
Principe de fonctionnement
un contrôleur0 à N injecteursune cibleun scenario, des scenariides jeux de données de test
, pas de dump de productiondes logsdes rapports de résultats
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 30 / 59
Principe de fonctionnement
un contrôleur0 à N injecteursune cibleun scenario, des scenariides jeux de données de test, pas de dump de production
des logsdes rapports de résultats
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 30 / 59
Principe de fonctionnement
un contrôleur0 à N injecteursune cibleun scenario, des scenariides jeux de données de test, pas de dump de productiondes logs
des rapports de résultats
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 30 / 59
Principe de fonctionnement
un contrôleur0 à N injecteursune cibleun scenario, des scenariides jeux de données de test, pas de dump de productiondes logsdes rapports de résultats
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 30 / 59
Installation
apt-get install tsungyum install tsung...git clone && ./configure && make installmake deb rpm
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 32 / 59
Scenario
Example<?xml version="1.0"?><!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd"><tsung loglevel="debug" dumptraffic="protocol" version="1.0">
<clients />
<servers />
<options />
<load><arrivalphase />
</load>
<sessions><session>
<transaction /><transaction />
</session></sessions>
</tsung>
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 33 / 59
Scenario
La cible
Simple<servers>
<server host="www.target.fr" port="8080" type="tcp" /></servers>
Complexe<servers><server host="192.168.0.1" port="80" weight="2" type="tcp" /><server host="192.168.0.2" port="8080" weight="1" type="tcp" /><server host="192.168.0.3" port="80" weight="1" type="tcp" /><server host="192.168.0.4" port="80" weight="1" type="tcp" /><server host="192.168.0.5" port="80" weight="10" type="tcp" />
</servers>
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 34 / 59
Scenario
La cible
Simple<servers>
<server host="www.target.fr" port="8080" type="tcp" /></servers>
Complexe<servers>
<server host="192.168.0.1" port="80" weight="2" type="tcp" /><server host="192.168.0.2" port="8080" weight="1" type="tcp" /><server host="192.168.0.3" port="80" weight="1" type="tcp" /><server host="192.168.0.4" port="80" weight="1" type="tcp" /><server host="192.168.0.5" port="80" weight="10" type="tcp" />
</servers>
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 34 / 59
Scenario
Les injecteurs
Simple<clients>
<client host="localhost" use_controller_vm="true"/></clients>
Complexe<clients><client host="foo" weight="1"><ip value="10.9.195.12"></ip><ip value="10.9.195.13"></ip>
</client><client host="bar" weight="2" />
</clients>
Tout le traffic réseau entre le contrôlleur et les injecteurs passe par unlien ssh monté automatiquement
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 35 / 59
Scenario
Les injecteurs
Simple<clients>
<client host="localhost" use_controller_vm="true"/></clients>
Complexe<clients>
<client host="foo" weight="1"><ip value="10.9.195.12"></ip><ip value="10.9.195.13"></ip>
</client><client host="bar" weight="2" />
</clients>
Tout le traffic réseau entre le contrôlleur et les injecteurs passe par unlien ssh monté automatiquement
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 35 / 59
Scenario
Les injecteurs
Simple<clients>
<client host="localhost" use_controller_vm="true"/></clients>
Complexe<clients>
<client host="foo" weight="1"><ip value="10.9.195.12"></ip><ip value="10.9.195.13"></ip>
</client><client host="bar" weight="2" />
</clients>
Tout le traffic réseau entre le contrôlleur et les injecteurs passe par unlien ssh monté automatiquement
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 35 / 59
Scenario
La charge
Example<load>
<arrivalphase phase="1" duration="10" unit="minute"><users arrivalrate="1" unit="second"></users>
</arrivalphase>
<arrivalphase phase="2" duration="60" unit="minute"><users arrivalrate="10" unit="second"></users>
</arrivalphase></load>
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 36 / 59
Scenario
Création du scenario
En mode proxy$ tsung-recorder startStarting Tsung recorder on port 8090"Record file: /home/rodo/.tsung/tsung_recorder20131003-1633.xml"
Depuis les logs$ log2tsung.pl
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 37 / 59
Scenario
Les requêtes
Example<request>
<http url="/" method="GET" version="1.1" /></request>
<request><http url="/api/v1/foo?format=json" method="GET" version="1.1" />
</request>
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 38 / 59
Scenario
Sur le contrôleur
Exécution$ tsung -f scenario.xml -l logs/ start
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 39 / 59
Fonctions avancées
gestion des cookies automatique
thinktime aléatoireboucles et sections conditionnellesanalyse du résultatvariables dynamiquesdonnées aléatoiresextension par modules erlang...
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 47 / 59
Fonctions avancées
gestion des cookies automatiquethinktime aléatoire
boucles et sections conditionnellesanalyse du résultatvariables dynamiquesdonnées aléatoiresextension par modules erlang...
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 47 / 59
Fonctions avancées
gestion des cookies automatiquethinktime aléatoireboucles et sections conditionnelles
analyse du résultatvariables dynamiquesdonnées aléatoiresextension par modules erlang...
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 47 / 59
Fonctions avancées
gestion des cookies automatiquethinktime aléatoireboucles et sections conditionnellesanalyse du résultat
variables dynamiquesdonnées aléatoiresextension par modules erlang...
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 47 / 59
Fonctions avancées
gestion des cookies automatiquethinktime aléatoireboucles et sections conditionnellesanalyse du résultatvariables dynamiques
données aléatoiresextension par modules erlang...
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 47 / 59
Fonctions avancées
gestion des cookies automatiquethinktime aléatoireboucles et sections conditionnellesanalyse du résultatvariables dynamiquesdonnées aléatoires
extension par modules erlang...
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 47 / 59
Fonctions avancées
gestion des cookies automatiquethinktime aléatoireboucles et sections conditionnellesanalyse du résultatvariables dynamiquesdonnées aléatoiresextension par modules erlang
...
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 47 / 59
Fonctions avancées
gestion des cookies automatiquethinktime aléatoireboucles et sections conditionnellesanalyse du résultatvariables dynamiquesdonnées aléatoiresextension par modules erlang...
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 47 / 59
match
L’élément match permet de déclencher une action suivant le contenudu résultat de la requête.
Example<request>
<match do="loop" sleep_loop="5" max_loop="10" when="match">Retry</match><match do="abort" when="match">Error</match><http url="/index.php" method="GET">
</request>
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 48 / 59
dyn_variable
Les variables dynamiques sont initialisées par lecture du résultat d’uneaction et peuvent être ré-utilisées dans les actions suivantes.
Example<request>
<dyn_variable name="nb_page" re="Page \d+ on (\d+)" /><http url="/articles" method="GET" version="1.1" ></http>
</request><request subst="true">
<http url="/articles?page=%%_nb_page%%" method="GET" version="1.1" ></http></request>
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 49 / 59
dyn_variable
Lecture d’un fichier JSON
Example<request>
<dyn_variable name="nb_page" jsonpath="field.array[3].value"/><http url="/articles" method="GET" version="1.1" ></http>
</request>
<request subst="true"><http url="/articles?page=%%_nb_page%%" method="GET" version="1.1" ></http>
</request>
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 50 / 59
dyn_variable
Utilisation du xpath
Example<request>
<dyn_variable name="field1_value" xpath="//div[2]/@value"/><http url="/articles" method="GET" version="1.1" ></http>
</request>
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 51 / 59
Cas concret
jeu télévisé allemand avec retour des téléspectateurs30 millions de joueurs avec une action toutes les 10 secondes
fail à 85000 requêtes par secondestest poussé à 330 000/sec ce qui équivaut à 1Millions de joueursplateforme EC2 avec 50 nodes, 800 core, 1.5TB de RAM1,213,583,187 requests, soit 50Gbitstaux d’erreur 0.000000216% (1 error every 4,624,616 requests)
https://stormforger.com/blog/2014/05/27/load-testing-an-interactive-tv-show-with-over-1-million-users/
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 53 / 59
Cas concret
jeu télévisé allemand avec retour des téléspectateurs30 millions de joueurs avec une action toutes les 10 secondesfail à 85000 requêtes par secondes
test poussé à 330 000/sec ce qui équivaut à 1Millions de joueursplateforme EC2 avec 50 nodes, 800 core, 1.5TB de RAM1,213,583,187 requests, soit 50Gbitstaux d’erreur 0.000000216% (1 error every 4,624,616 requests)
https://stormforger.com/blog/2014/05/27/load-testing-an-interactive-tv-show-with-over-1-million-users/
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 53 / 59
Cas concret
jeu télévisé allemand avec retour des téléspectateurs30 millions de joueurs avec une action toutes les 10 secondesfail à 85000 requêtes par secondestest poussé à 330 000/sec ce qui équivaut à 1Millions de joueurs
plateforme EC2 avec 50 nodes, 800 core, 1.5TB de RAM1,213,583,187 requests, soit 50Gbitstaux d’erreur 0.000000216% (1 error every 4,624,616 requests)
https://stormforger.com/blog/2014/05/27/load-testing-an-interactive-tv-show-with-over-1-million-users/
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 53 / 59
Cas concret
jeu télévisé allemand avec retour des téléspectateurs30 millions de joueurs avec une action toutes les 10 secondesfail à 85000 requêtes par secondestest poussé à 330 000/sec ce qui équivaut à 1Millions de joueursplateforme EC2 avec 50 nodes, 800 core, 1.5TB de RAM
1,213,583,187 requests, soit 50Gbitstaux d’erreur 0.000000216% (1 error every 4,624,616 requests)
https://stormforger.com/blog/2014/05/27/load-testing-an-interactive-tv-show-with-over-1-million-users/
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 53 / 59
Cas concret
jeu télévisé allemand avec retour des téléspectateurs30 millions de joueurs avec une action toutes les 10 secondesfail à 85000 requêtes par secondestest poussé à 330 000/sec ce qui équivaut à 1Millions de joueursplateforme EC2 avec 50 nodes, 800 core, 1.5TB de RAM1,213,583,187 requests, soit 50Gbits
taux d’erreur 0.000000216% (1 error every 4,624,616 requests)
https://stormforger.com/blog/2014/05/27/load-testing-an-interactive-tv-show-with-over-1-million-users/
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 53 / 59
Cas concret
jeu télévisé allemand avec retour des téléspectateurs30 millions de joueurs avec une action toutes les 10 secondesfail à 85000 requêtes par secondestest poussé à 330 000/sec ce qui équivaut à 1Millions de joueursplateforme EC2 avec 50 nodes, 800 core, 1.5TB de RAM1,213,583,187 requests, soit 50Gbitstaux d’erreur 0.000000216% (1 error every 4,624,616 requests)
https://stormforger.com/blog/2014/05/27/load-testing-an-interactive-tv-show-with-over-1-million-users/
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 53 / 59
Quelques conseils
commencez au plus tôt la rédaction des scénarios
créez vos données de test avec l’outil de testarchitecture de pre-prod au plus près de la prodle dernier test pour la route en prod
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 54 / 59
Quelques conseils
commencez au plus tôt la rédaction des scénarioscréez vos données de test avec l’outil de test
architecture de pre-prod au plus près de la prodle dernier test pour la route en prod
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 54 / 59
Quelques conseils
commencez au plus tôt la rédaction des scénarioscréez vos données de test avec l’outil de testarchitecture de pre-prod au plus près de la prod
le dernier test pour la route en prod
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 54 / 59
Quelques conseils
commencez au plus tôt la rédaction des scénarioscréez vos données de test avec l’outil de testarchitecture de pre-prod au plus près de la prodle dernier test pour la route en prod
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 54 / 59
Contribuer
Docs, https://tsung.readthedocs.org/Code, https://github.com/processone/tsung/CI, http://jenkins.quiedeville.org/view/Tsung/job/Tsung/
Bugtrack,https://support.process-one.net/browse/TSUN
Irc, freenode #tsungML, https://lists.process-one.net/mailman/listinfo/tsung-users
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 55 / 59
Pardon, j’ai menti
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 56 / 59
Tsung ne supporte pas 1 million d’utilisateurs
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 57 / 59
mais 10 millions
75 noeuds> 1 million requêtes/secondes
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 58 / 59
mais 10 millions75 noeuds
> 1 million requêtes/secondes
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 58 / 59
mais 10 millions75 noeuds
> 1 million requêtes/secondes
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 58 / 59
Questions ?
Rodolphe Quiédeville
Document publié sous Licence Creative Commons BY-SA 2.0
Rodolphe Quiédeville (Novapost) de 1 à 1 million avec Tsung 19 février 2015 59 / 59