Un Tsung vaut mieux que 2 "croisons les doigts"

Preview:

DESCRIPTION

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.

Citation preview

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 dernierDevOps depuis que le terme existecontributeur TsungFreelanceproblé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 Erlangpublié sous GNU GPL V2projet Idealx initialement nommé IDX-Tsunamitest de serveur XMPPversion 1.5.1 stable, 1.6.0 bientôt

Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 3 / 27

Caractéristiques

multi protocolesscalable (validé à 10 Millions d’utilisateurs)pas d’interface graphiqueextensible par pluginsscenarios XML avec validation XSLsondes de monitoringmodèle Stochastic avec distribution de Poisson

Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 4 / 27

Utilisateurs

TotalCMA-CGMMinistère des financesDailymotionSkyrock, LibérationLibertySurfGrid’5000

Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 5 / 27

Principe de fonctionnement

un contrôleur0 à N injecteursune cibleun scenariodes logsdes rapports de résultats

Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 6 / 27

Protocoles supportés en 1.5.1

HTTP/HTTPSWebsocketJabber/XMPPWebdavAMQP / MQTT / ZeroMQLDAPMySQL

Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 7 / 27

Protocoles supportés en 1.5.1

HTTP/HTTPSWebsocketJabber/XMPPWebdavAMQP / MQTT / ZeroMQLDAPMySQLPostgreSQL

Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 8 / 27

Fonctions avancées

variables dynamiquesgestion des cookies automatiqueanalyse du résulatthinktimedonnées aléatoiresextension par modules erlangboucles et tests...

Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 9 / 27

Installation

pre-requis : Erlang R15, erlang-crypto, sshpackage : Debian, Ubuntu, Fedora, ...sources : Githubscripts de creation paquet .deb dans les sourcesdé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 : CdPDominique : développeurFré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 foisFré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 foisFré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 foisFré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 foisFrédérique : quelle requête ?, quelle partie du site ?Paul : plusieurs !Dominique : le passage des diffs sur les objets présentsFrédérique : on va regarder la table node

Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 22 / 27

La table de log

SchemaCREATE 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 startStarting 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

Complexe4> 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 #tsungML, 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.orghttp://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