Monter en charge d'une application web en python

Le
Pensee
Bonjour,

J'aimerais tester la capacite de monte en charge de mon application en
python.

Est ce qu'il existe des bibliotheques qui permettent de faire ce type
de travail ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre Quentel
Le #608797
On 8 mai, 01:56, Pensee
Bonjour,

J'aimerais tester la capacite de monte en charge de mon application en
python.

Est ce qu'il existe des bibliotheques qui permettent de faire ce type
de travail ?


Bonjour,

Tu peux essayer cet excellent script sur le Python Cookbook :
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/442412

A+
Pierre

William Dode
Le #608608
On 07-05-2007, Pensee wrote:
Bonjour,

J'aimerais tester la capacite de monte en charge de mon application en
python.

Est ce qu'il existe des bibliotheques qui permettent de faire ce type
de travail ?



Ici http://wwwsearch.sourceforge.net/ tu trouveras une librairie
intéressante pour tout ce qui est test d'appli web.

Sinon, une liste d'outils :
http://www.opensourcetesting.org/performance.php


--
William Dodé - http://flibuste.net
Développeur informatique indépendant

Méta-MCI
Le #608607
Bonjour !

La question est intéressante.

Mais, je m'interroge, sur plusieurs points :
- si le test a lieu sur la même machine que le serveur Web, ne
risque-t'on pas de tomber sur les limites de l'OS, pour les sockets ?
Certains OS limitent volontairement le nombre de connexions simultanées.
- si le test utilise une autre machine (en réseau local, par exemple), ne
risque-t'on, pas de tomber sur les mêmes limites ? D'où impossibilité de
tester plus d'un certain nombre de connexions "externes".
- si l'on utilise des machines "extérieures", à partir d'un seul lieu, ne
risque-t'on pas de buter sur des contraintes des routeurs ? (et,
éventuellement, d'un parefeu sortant) ; les limites des connexions Internet
utilisées ne risquent-elles pas de "brider" le test, le rendant ainsi non
fiable ?


En fait, je m'étais posé la question, et n'avais rien trouvé de mieux que de
demander à plusieurs participants d'un (autre) newsgroup de lancer un script
de test à une heure précise. Mais le résultat est peu convainquant (même si
rassurant).

@+

MCI
Olivier Ravard
Le #608605
Méta-MCI wrote:
Bonjour !

La question est intéressante.

Mais, je m'interroge, sur plusieurs points :
- si le test a lieu sur la même machine que le serveur Web, ne
risque-t'on pas de tomber sur les limites de l'OS, pour les sockets ?
Certains OS limitent volontairement le nombre de connexions simultanées.
- si le test utilise une autre machine (en réseau local, par exemple),
ne risque-t'on, pas de tomber sur les mêmes limites ? D'où
impossibilité de tester plus d'un certain nombre de connexions "externes".
- si l'on utilise des machines "extérieures", à partir d'un seul lieu,
ne risque-t'on pas de buter sur des contraintes des routeurs ? (et,
éventuellement, d'un parefeu sortant) ; les limites des connexions
Internet utilisées ne risquent-elles pas de "brider" le test, le rendant
ainsi non fiable ?


A ce propos, quelqu'un aurait-il expérimenté si une appli faite avec cherrypy
tient correctement la charge ? J'ai << cru >> constater des blocages lors de requêtes
simulatées ...



En fait, je m'étais posé la question, et n'avais rien trouvé de mieux
que de demander à plusieurs participants d'un (autre) newsgroup de
lancer un script de test à une heure précise. Mais le résultat est peu
convainquant (même si rassurant).

@+

MCI



MC
Le #608604
Re !

J'ai fait un petit test, à l'automne dernier :
- Cherrypy sous windows-2003-server-web-edition sur une machine
reliée à Internet par une liaison à 100 Mbd.
- tests réalisés à partir de 4 sites utilisant des liaisons ADSL
(128k/512k 1M/8M 1M/10M) et SDSL (2M/2M)
- chaque sites lançait 2 ou 3 connexions simultanées
- le test consistait à effectuer une requête sur les code postaux
d'un département, dans une table (de 56000 enregistrements) gérée par
le BDE (Borland), piloté par le même script Python qui utilise
Cherrypy.
- le résultat consistait en une page Html, contenant un tableau
limité à 1000 lignes.

Performances : le temps de réponse (2 secondes, mais 3 pour la liaison
128/512) a toujours été stable, quelque soit le nombre de connexions.


Donc, pour moi, Cherrypy tient vraiment la route. En plus, la dernière
version est donnée pour être 2 ou 3 fois plus rapide.




--
@-salutations

Michel Claveau
jp.camguilhem
Le #608603
On 8 mai, 01:56, Pensee
Bonjour,

J'aimerais tester la capacite de monte en charge de mon application en
python.

Est ce qu'il existe des bibliotheques qui permettent de faire ce type
de travail ?


Si tu as apache d' installé sur les machines clientes qui doivent
faire tes tests, tu as le module apache bench qui te permet entre
autres de gérer les clients et les requêtes simultanées :
sudo ab -n 100 -c 100 http://tonsupersite.com/

Par contre tu ne sauras pas où ton application se traine si tel était
le cas.
Il te faudra mesurer en interne.

les principales sources d'optimisation sont :
vérifier la bonne négociation des objets en cache du coté client
le caching coté serveur des fichiers css, images et autres javascript.
Si tu as apache en frontal de ton application, il fait celà très bien
(mod_cache)
tu peux bien entendu aussi diminuer la taille de ces derniers(virer
les sauts de ligne etc..., diminuer la taille des images, compresser
ces derniers.

Le caching des requêtes sql s'il y en a.
Les languages de templates ne sont pas tous égaux en termes de
performances etc...

Voilà pour un début.

@++

Olivier Ravard
Le #608601
MC wrote:
Re !

J'ai fait un petit test, à l'automne dernier :
- Cherrypy sous windows-2003-server-web-edition sur une machine reliée
à Internet par une liaison à 100 Mbd.
- tests réalisés à partir de 4 sites utilisant des liaisons ADSL
(128k/512k 1M/8M 1M/10M) et SDSL (2M/2M)
- chaque sites lançait 2 ou 3 connexions simultanées
- le test consistait à effectuer une requête sur les code postaux d'un
département, dans une table (de 56000 enregistrements) gérée par le BDE
(Borland), piloté par le même script Python qui utilise Cherrypy.
- le résultat consistait en une page Html, contenant un tableau limité
à 1000 lignes.

Performances : le temps de réponse (2 secondes, mais 3 pour la liaison
128/512) a toujours été stable, quelque soit le nombre de connexions.


Donc, pour moi, Cherrypy tient vraiment la route. En plus, la dernière
version est donnée pour être 2 ou 3 fois plus rapide.



Merci pour ces infos. Ceci confirme la bonne opinion que j'ai sur ce produit.

Mihamina (R12y) Rakotomandimby
Le #608600
Pensee -
Bonjour,


Bonjour,

J'aimerais tester la capacite de monte en charge de mon application en
python.


Je me souviens que S Fermigier de chez Nuxeo en avait fait un pour
benchmarker CPS il y a 2 ans.
En demandant sur la ML user-fr de CPS, tu devrait avoir plus de précisions.

Bruno Desthuilliers
Le #608387
Bonjour,

J'aimerais tester la capacite de monte en charge de mon application en
python.

Est ce qu'il existe des bibliotheques qui permettent de faire ce type
de travail ?

Pour du test "boite noire", il y a apache bench et pas mal d'autres

outils - le fait que ton appli soit en Python n'a pas d'incidence de ce
point de vue.

Pour du test "boite blanche", tu peux toujours faire les mêmes tests
qu'en boite noire en faisant tourner ton appli sous contrôle d'un
profiler (modules profile, cProfile ou hotshot). Cela aura bien sûr une
incidence sur les perfs absolues (comparativement aux mêmes tests sans
le profiler), mais permettra de savoir où ça coince le plus.

Bruno Desthuilliers
Le #608386
Bonjour !

La question est intéressante.

Mais, je m'interroge, sur plusieurs points :
- si le test a lieu sur la même machine que le serveur Web, ne
risque-t'on pas de tomber sur les limites de l'OS, pour les sockets ?


Pas seulement. Le processus de test requiert également des ressources
mémoires ou CPU qui ne sont par conséquent plus disponibles pour le
processus à tester... Sur des appli gourmandes en ressources (je pense
notamment aux usines à gaz comme Plone ou feu CPS), ça peut faire une
différence notable (expérience personnelle).

Certains OS limitent volontairement le nombre de connexions simultanées.
- si le test utilise une autre machine (en réseau local, par exemple),
ne risque-t'on, pas de tomber sur les mêmes limites ? D'où
impossibilité de tester plus d'un certain nombre de connexions "externes".
- si l'on utilise des machines "extérieures", à partir d'un seul lieu,
ne risque-t'on pas de buter sur des contraintes des routeurs ? (et,
éventuellement, d'un parefeu sortant) ; les limites des connexions
Internet utilisées ne risquent-elles pas de "brider" le test, le rendant
ainsi non fiable ?


En fait, je m'étais posé la question, et n'avais rien trouvé de mieux
que de demander à plusieurs participants d'un (autre) newsgroup de
lancer un script de test à une heure précise. Mais le résultat est peu
convainquant (même si rassurant).


Il est de toutes façons irréaliste d'espérer simuler crédiblement le
comportement effectif des internautes. L'avantage du test automatisé est
sa répétabilité. Cela permet d'une part de répérer les requêtes les plus
coûteuses (après quoi on peut sortir le profileur), et d'autre part de
vérifier les effets d'une modification de code, de paramétrage ou
d'environnement. Dans tous les cas, il s'agit surtout d'avoir d'une part
un ordre de grandeur concernant les capacités à tenir la montée en
charge et d'autre part une connaissance un tant soit peu fiable des
paramètres influant ces capacités.

Publicité
Poster une réponse
Anonyme