Maarch Framework 3 -

Transcription

Maarch Framework 3 -
Maarch
Professional Services
11, bd du Sud Est
92000 Nanterre
Tel : +33 1 47 24 51 59
Fax : +33 1 47 24 54 08
Maarch PS anime le développement d’un
produit d’archivage open source :
http://www.maarch.fr
Maarch Framework 3
Tests de charge
Maarch Framework 3
Tests de charge
Sommaire
1 APERÇU..........................................................................................................................................3
2 PROTOCOLE..................................................................................................................................4
2.1 OUTIL DE TEST..................................................................................................................................4
2.2 CONFIGURATION SERVEUR...................................................................................................................4
2.3 CONFIGURATION CLIENT.......................................................................................................................4
2.4 VOLUMÉTRIE.....................................................................................................................................4
2.5 SCÉNARIO DE TEST............................................................................................................................4
3 RÉSULTATS....................................................................................................................................6
3.1 IMPORT DE DOCUMENTS.......................................................................................................................6
3.2 CONSULTATION.................................................................................................................................7
3.2.1 Résultat général..................................................................................................................7
3.2.2 Résultats pour les pages qui génèrent des requêtes SQL..................................................8
4 LIMITES DU TEST.........................................................................................................................10
5 5 ANNEXES.................................................................................................................................11
5.1 5.1 LÉGENDE...............................................................................................................................11
Maarch PS
Page : 2 / 11
© 2009 Maarch PS – Diffusion interdite sans l’accord préalable de Maarch
Maarch Framework 3
Tests de charge
1 APERÇU
Maarch a eu a sa disposition une machine puissante et une configuration professionnelle pour réaliser des
tests de performance (« stress tests ») en consultation et injection de masse.
Les tests sur des machines de développement et ce que nous connaissions de Maarch en production nous
poussaient à être confiants sur l’issue de cette expérience, mais il était toujours intéressant d’obtenir des
métriques sur des environnements conséquents.
Le client nous a prêté cet environnement sur une journée, 3 jours avant la bascule en production définitive, et
sur une configuration « pré-prod » : base chargée à plus de 100 millions de documents, index positionnés,
implémentation Maarch Framework recettée.
Nous avions préparé au préalable un scénario de test de charge (« stress test ») en consultation, dont le
protocole est décrit dans ce document. Par contre, les résultats sur l’ingestion de masse sont directement
issus des logs des batchs d’ingestion après mise en production.
Sur les deux fronts, les résultats sont très positifs :
•
•
Maarch PS
2150 documents à la minute en versement de masse avec Maarch AutoImport ;
1.000 utilisateurs simultanés en consultation avec 95% des pages affichées en 0,7s
Page : 3 / 11
© 2009 Maarch PS – Diffusion interdite sans l’accord préalable de Maarch
Maarch Framework 3
Tests de charge
2 PROTOCOLE
2.1 Outil de test
Merci à nos amis de Nuxeo qui ont publié en Open Source l’outil Funkload qui nous a permis de lancer ces
tests de charge.
2.2 Configuration serveur
•
•
•
•
•
•
2x Intel Xeon E5420 @ 2.50GHz
8GB RAM
Red Hat Enterprise Linux Server release 5.3 64 bits (Linux kernel 2.6.18, ext3fs)
Apache HTTP Server 2.2.3
ORACLE 10.2.0.4 64 bits
PHP 5.1.6
2.3 Configuration client
•
•
•
•
Intel Core2 Duo T7300 @ 2.00GHz
2GB RAM
Ubuntu 9.04 (Linux kernel 2.6.28, ext3fs)
Python 2.6.2
2.4 Volumétrie
Les volumétrie en jeu sont les suivantes :
•
•
•
•
Base chargée à 100 millions de documents « réels » appartenant à quatre grandes familles :
• Contrats
• Factures
• Courriers
• Documents de gestion
Liste de 20.000 n° de contrats dans lequel le scénario pioche de façon aléatoire
Page de détails pour un document contenant 15 propriétés
En moyenne, une recherche renvoie 100 résultats (100 documents par contrat)
2.5 Scénario de test
Dans ce protocole nous avons voulu simuler un utilisateur de type gestionnaire traitant des courriers ou des
appels téléphoniques clients. Dans ce but, celui-ci lance des recherches sur l’interface pour trouver tous les
documents associés à un numéro de contrat.
Il clique sur la première ligne de la liste de résultat pour afficher la page de propriété, reste au téléphone
pendant quelque temps, puis lance une nouvelle recherche.
On ne demande pas l’affichage du contenu du document lui-même, qui dépend principalement du débit
réseau.
Maarch PS
Page : 4 / 11
© 2009 Maarch PS – Diffusion interdite sans l’accord préalable de Maarch
Maarch Framework 3
Tests de charge
En détail le script d’un test pris unitairement est le suivant :
•
•
•
•
•
Maarch PS
Affichage de la page de login
Attente de 20s
Connexion à l'application
Répéter 10 fois :
• Affichage du formulaire de recherche
• Recherche sur n° de contrat
• Attente de 22s
• Affichage de la page de propriété
• Attente de 1m et 55s
Déconnexion de l'application
Page : 5 / 11
© 2009 Maarch PS – Diffusion interdite sans l’accord préalable de Maarch
Maarch Framework 3
Tests de charge
3 RÉSULTATS
3.1 Import de documents
Maarch AutoImport a injecté en moyenne 2150 documents par minute (130 000 documents par heure) dans
l’application (base de données et DocServer).
Maarch PS
Page : 6 / 11
© 2009 Maarch PS – Diffusion interdite sans l’accord préalable de Maarch
Maarch Framework 3
Tests de charge
3.2 Consultation
3.2.1
Résultat général
Nombre de pages chargées
CUs SPPS maxSPPS TOTAL SUCCESS ERROR
100
3.543
10.000
1000 35.873 77.000
2126
2126
0.00%
21524
21524
0.00%
Temps de chargement
CUs
MIN
AVG MAX
P10
MED
P90
P95
100 0.025 0.119 1.017 0.027 0.114 0.219 0.261
1000 0.024 0.257 2.310 0.037 0.200 0.532 0.714
Maarch PS
Page : 7 / 11
© 2009 Maarch PS – Diffusion interdite sans l’accord préalable de Maarch
Maarch Framework 3
Tests de charge
3.2.2
Résultats pour les pages qui génèrent des requêtes SQL
3.2.2.1 Recherche de document
Nombre de pages chargées
CUs TOTAL SUCCESS ERROR
100
402
402
0.00%
1000
4267
4267
0.00%
Temps de chargement
CUs
MIN
AVG MAX
P10
MED
P90
P95
100 0.106 0.166 0.800 0.126 0.151 0.208 0.232
1000 0.111 0.308 1.629 0.152 0.221 0.588 0.782
Maarch PS
Page : 8 / 11
© 2009 Maarch PS – Diffusion interdite sans l’accord préalable de Maarch
Maarch Framework 3
Tests de charge
3.2.2.2 Affichage de La fiche détail
Nombre de pages récupérées
CUs TOTAL SUCCESS ERROR
100
396
396
0.00%
1000
3969
3969
0.00%
Temps de chargement
CUs
MIN
AVG MAX
P10
MED
P90
P95
100 0.141 0.217 1.017 0.175 0.206 0.265 0.290
1000 0.141 0.419 1.784 0.225 0.318 0.755 1.042
Maarch PS
Page : 9 / 11
© 2009 Maarch PS – Diffusion interdite sans l’accord préalable de Maarch
Maarch Framework 3
Tests de charge
4 LIMITES DU TEST
Même si les résultats sont très positifs dans l'ensemble, nous n'avons pas pu pousser les tests plus loin et
augmenter encore le nombre d'utilisateurs :
•
•
Maarch PS
les caractéristiques du client ne permettaient pas l'augmentation du nombre d'utilisateurs concourants
(CPU et RAM insuffisante).
la solution de test choisie ne permet pas de répartir les utilisateurs émulés sur plusieurs postes
clients : la capacité du réseau devient un paramètre bloquant.
Page : 10 / 11
© 2009 Maarch PS – Diffusion interdite sans l’accord préalable de Maarch
Maarch Framework 3
Tests de charge
5 ANNEXES
5.1 Légende
•
•
•
•
•
•
•
•
•
•
•
Maarch PS
CUs: Concurrent users or number of concurrent threads executing tests.
Page: a request with redirects and ressource links (image, css, js) for an html page.
SPPS: Successful pages per second.
maxSPPS: Maximum SPPS during the cycle.
MIN: Minimum response time for a page or request.
AVG: Average response time for a page or request.
MAX: Maximmum response time for a page or request.
P10: Percentil 10 or response time where 10 percent of pages or requests are delivred.
MED: Median or Percentil 50, response time where half of pages or requests are delivred.
P90: Percentil 90 or response time where 90 percent of pages or requests are delivred.
P95: Percentil 95 or response time where 95 percent of pages or requests are delivred.
Page : 11 / 11
© 2009 Maarch PS – Diffusion interdite sans l’accord préalable de Maarch