Un Tsung vaut mieux que 2 "croisons les doigts"

779 vues

Publié le

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.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
779
Sur SlideShare
0
Issues des intégrations
0
Intégrations
11
Actions
Partages
0
Téléchargements
14
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Un Tsung vaut mieux que 2 "croisons les doigts"

  1. 1. 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
  2. 2. 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
  3. 3. 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
  4. 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. 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. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. Houston on a un problème Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 11 / 27
  12. 12. 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
  13. 13. Houston on a un problème Paul : le site est lent ! Rodolphe Quiédeville (Freelance) Tsung - Meetup PostgreSQL 16 avril 2014 13 / 27
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 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. 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. 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

×