Cas d'école et démarche suivie pour résoudre un problème de performance dans une base de données PostgreSQL. Présentation donnée au Meetup PostgreSQL Paris User Group le 16 avril 2014.
1. Tsung - Meetup PostgreSQL
Rodolphe Quiédeville
Un Tsung vaut mieux que 2 "croisons les doigts" !
16 avril 2014
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 1 / 27
2. Le speaker
admin/sys depuis le siècle dernier
DevOps depuis que le terme existe
contributeur Tsung
Freelance
problématique de performance des SI(G)
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 2 / 27
3. Tsung
début développement en 2001
écrit en Erlang
publié sous GNU GPL V2
projet Idealx initialement nommé IDX-Tsunami
test de serveur XMPP
version 1.5.1 stable, 1.6.0 bientôt
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 3 / 27
4. Caractéristiques
multi protocoles
scalable (validé à 10 Millions d’utilisateurs)
pas d’interface graphique
extensible par plugins
scenarios XML avec validation XSL
sondes de monitoring
modèle Stochastic avec distribution de Poisson
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 4 / 27
6. Principe de fonctionnement
un contrôleur
0 à N injecteurs
une cible
un scenario
des logs
des rapports de résultats
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 6 / 27
7. Protocoles supportés en 1.5.1
HTTP/HTTPS
Websocket
Jabber/XMPP
Webdav
AMQP / MQTT / ZeroMQ
LDAP
MySQL
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 7 / 27
8. Protocoles supportés en 1.5.1
HTTP/HTTPS
Websocket
Jabber/XMPP
Webdav
AMQP / MQTT / ZeroMQ
LDAP
MySQL
PostgreSQL
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 8 / 27
9. Fonctions avancées
variables dynamiques
gestion des cookies automatique
analyse du résulat
thinktime
données aléatoires
extension par modules erlang
boucles et tests
...
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 9 / 27
10. Installation
pre-requis : Erlang R15, erlang-crypto, ssh
package : Debian, Ubuntu, Fedora, ...
sources : Github
scripts de creation paquet .deb dans les sources
déploiement à l’identique sur le contrôleur et les injecteurs
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 10 / 27
11. Houston on a un problème
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 11 / 27
12. Houston on a un problème
Paul : CdP
Dominique : développeur
Frédérique : DBA
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 12 / 27
13. Houston on a un problème
Paul : le site est lent !
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 13 / 27
14. Houston on a un problème
Paul : le site est lent !
Dominique : c’est la base !
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 14 / 27
15. Houston on a un problème
Paul : le site est lent !
Dominique : c’est la base !
Frédérique : ...
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 15 / 27
16. Houston on a un problème
Frédérique : quand est-ce que c’est lent ?
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 16 / 27
17. Houston on a un problème
Frédérique : quand est-ce que c’est lent ?
Dominique : euh...
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 17 / 27
18. Houston on a un problème
Frédérique : quand est-ce que c’est lent ?
Dominique : euh...
Paul : ... des fois
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 18 / 27
19. Houston on a un problème
Frédérique : quand est-ce que c’est lent ?
Dominique : euh...
Paul : ... des fois
Frédérique : quelle requête ?, quelle partie du site ?
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 19 / 27
20. Houston on a un problème
Frédérique : quand est-ce que c’est lent ?
Dominique : euh...
Paul : ... des fois
Frédérique : quelle requête ?, quelle partie du site ?
Paul : plusieurs !
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 20 / 27
21. Houston on a un problème
Frédérique : quand est-ce que c’est lent ?
Dominique : euh...
Paul : ... des fois
Frédérique : quelle requête ?, quelle partie du site ?
Paul : plusieurs !
Dominique : le passage des diffs sur les objets présents
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 21 / 27
22. Houston on a un problème
Frédérique : quand est-ce que c’est lent ?
Dominique : euh...
Paul : ... des fois
Frédérique : quelle requête ?, quelle partie du site ?
Paul : plusieurs !
Dominique : le passage des diffs sur les objets présents
Frédérique : on va regarder la table node
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 22 / 27