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.
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
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
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
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
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
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
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
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
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
Houston on a un problème
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 11 / 27
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
Houston on a un problème
Paul : le site est lent !
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 13 / 27
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
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
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
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
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
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
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
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
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