Un Tsung vaut mieux que 2 "croisons les doigts"

27
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

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.

Transcript of Un Tsung vaut mieux que 2 "croisons les doigts"

Page 1: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 2: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 3: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 4: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 5: Un Tsung vaut mieux que 2 "croisons les doigts"

Utilisateurs

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

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

Page 6: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 7: Un Tsung vaut mieux que 2 "croisons les doigts"

Protocoles supportés en 1.5.1

HTTP/HTTPSWebsocketJabber/XMPPWebdavAMQP / MQTT / ZeroMQLDAPMySQL

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

Page 8: Un Tsung vaut mieux que 2 "croisons les doigts"

Protocoles supportés en 1.5.1

HTTP/HTTPSWebsocketJabber/XMPPWebdavAMQP / MQTT / ZeroMQLDAPMySQLPostgreSQL

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

Page 9: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 10: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 11: Un Tsung vaut mieux que 2 "croisons les doigts"

Houston on a un problème

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

Page 12: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 13: Un Tsung vaut mieux que 2 "croisons les doigts"

Houston on a un problème

Paul : le site est lent !

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

Page 14: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 15: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 16: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 17: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 18: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 19: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 20: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 21: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 22: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 23: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 24: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 25: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 26: Un Tsung vaut mieux que 2 "croisons les doigts"

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

Page 27: Un Tsung vaut mieux que 2 "croisons les doigts"

Questions ?

Rodolphe Quiédeville

[email protected]://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