Upload
rodolphe-quiedeville
View
368
Download
3
Embed Size (px)
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
[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