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
Utilisateurs
Total
CMA-CGM
Ministère des finances
Dailymotion
Skyrock, Libération
LibertySurf
Grid’5000
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 5 / 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
La table de log
Schema
CREATE TABLE node (
osmid bigint,
changeset bigint,
version smallint,
uid integer,
tags json,
tms timestamp
)
CREATE TABLE node0 () INHERITS (node);
CREATE TABLE node1 () INHERITS (node);
CREATE TABLE node2 () INHERITS (node);
CREATE TABLE node3 () INHERITS (node);
CREATE TABLE node4 () INHERITS (node);
CREATE TABLE node5 () INHERITS (node);
CREATE TABLE node6 () INHERITS (node);
CREATE TABLE node7 () INHERITS (node);
CREATE TABLE node8 () INHERITS (node);
CREATE TABLE node9 () INHERITS (node);
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 23 / 27
Scenario
Création du scenario
En mode proxy
$ tsung-recorder -p pgsql -P 5433 start
Starting Tsung recorder on port 8090
"Record file: /home/rodo/.tsung/tsung_recorder20131003-1633.xml"
Depuis les logs
$ log2tsung.pl
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 24 / 27
Modules
Utilisation de modules
Complexe
4> postgis:rnd_point().
"ST_Point(-28.895539, 14.205375)"
5> postgis:rnd_box2d().
"ST_SetSRID(ST_MakeBox2d(ST_Point(-44.348885, 14.746422),
ST_Point(141.487238, 27.543301))), 4326)"
7> randomcoord:url({4,4}).
"lat=33.325592&lon=-23.764108"
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 25 / 27
Contribuer
Docs, https://tsung.readthedocs.org/
Code, https://github.com/processone/tsung/
CI, http://jenkins.quiedeville.org/view/Tsung/
Bugtrack,
https://support.process-one.net/browse/TSUN
Irc, freenode #tsung
ML, https://lists.process-one.net/mailman/
listinfo/tsung-users
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 26 / 27
Questions ?
Rodolphe Quiédeville
rodolphe@quiedeville.org
http://blog.rodolphe.quiedeville.org/
Document publié sous Licence Creative Commons BY-SA 2.0
Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 27 / 27

Un Tsung vaut mieux que 2 "croisons les doigts"

  • 1.
    Tsung - MeetupPostgreSQL 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 depuisle 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 en2001 é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
  • 5.
    Utilisateurs Total CMA-CGM Ministère des finances Dailymotion Skyrock,Libération LibertySurf Grid’5000 Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 5 / 27
  • 6.
    Principe de fonctionnement uncontrô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 en1.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 en1.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 gestiondes 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 : ErlangR15, 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 aun problème Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 11 / 27
  • 12.
    Houston on aun 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 aun problème Paul : le site est lent ! Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 13 / 27
  • 14.
    Houston on aun 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 aun 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 aun 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 aun 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 aun 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 aun 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 aun 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 aun 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 aun 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
  • 23.
    La table delog Schema CREATE TABLE node ( osmid bigint, changeset bigint, version smallint, uid integer, tags json, tms timestamp ) CREATE TABLE node0 () INHERITS (node); CREATE TABLE node1 () INHERITS (node); CREATE TABLE node2 () INHERITS (node); CREATE TABLE node3 () INHERITS (node); CREATE TABLE node4 () INHERITS (node); CREATE TABLE node5 () INHERITS (node); CREATE TABLE node6 () INHERITS (node); CREATE TABLE node7 () INHERITS (node); CREATE TABLE node8 () INHERITS (node); CREATE TABLE node9 () INHERITS (node); Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 23 / 27
  • 24.
    Scenario Création du scenario Enmode proxy $ tsung-recorder -p pgsql -P 5433 start Starting Tsung recorder on port 8090 "Record file: /home/rodo/.tsung/tsung_recorder20131003-1633.xml" Depuis les logs $ log2tsung.pl Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 24 / 27
  • 25.
    Modules Utilisation de modules Complexe 4>postgis:rnd_point(). "ST_Point(-28.895539, 14.205375)" 5> postgis:rnd_box2d(). "ST_SetSRID(ST_MakeBox2d(ST_Point(-44.348885, 14.746422), ST_Point(141.487238, 27.543301))), 4326)" 7> randomcoord:url({4,4}). "lat=33.325592&lon=-23.764108" Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 25 / 27
  • 26.
    Contribuer Docs, https://tsung.readthedocs.org/ Code, https://github.com/processone/tsung/ CI,http://jenkins.quiedeville.org/view/Tsung/ Bugtrack, https://support.process-one.net/browse/TSUN Irc, freenode #tsung ML, https://lists.process-one.net/mailman/ listinfo/tsung-users Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 26 / 27
  • 27.
    Questions ? Rodolphe Quiédeville rodolphe@quiedeville.org http://blog.rodolphe.quiedeville.org/ Documentpublié sous Licence Creative Commons BY-SA 2.0 Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 27 / 27