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