6

Supposons que j'ai une tonne (un flux continu) de demandes à traiter, et que chaque requête comporte plusieurs étapes. Par exemple: "connexion à la source de données", "lecture des données de la source de données", "validation des données", "traitement des données", "connexion au collecteur de données", "écriture du résultat dans le collecteur de données".Comment visualiser le comportement de nombreux processus simultanés en plusieurs étapes?

Quelles méthodes de visualisation ou même outils correspondent bien pour visualiser le comportement d'un tel système? Je voudrais être en mesure de voir quelles étapes prennent beaucoup de temps, et comment les étapes des différentes demandes sont alignées les unes par rapport aux autres (par exemple, pour voir que la source de données répond plus longtemps quand on y accède par trop de demandes à la fois).

S'il y avait seulement quelques douzaines de demandes, je serais OK avec quelques douzaines de chronologies colorées individuelles, mais pour quelques milliers cela ne correspond pas bien. Je pense que je peux m'en tirer avec N chronologies colorées, où N est le «facteur de concurrence», mais 1) peut-être il y a quelque chose de mieux, 2) peut-être existe-t-il des outils pour cela?

P.S. Plug impudique: Une fois que je trouve la meilleure façon de visualisation, je vais l'ajouter à mon outil astucieux appelé timeplot;)

P.P.S. Une autre prise éhontée: j'ai décidé d'écrire un outil séparé: splot. Voici ce qu'il peut faire, sur la base d'un journal trivialement simple et un awk one-liner:

alt text

Il est montrant 160 noyaux d'un cluster effectuant des tâches vers celles-ci par RabbitMQ. Le bleu est "aller chercher des données", l'orange est "calculer", le blanc "ne rien faire". Plusieurs problèmes sont immédiatement évidents à partir de ce diagramme, qui serait très difficile à trouver en regardant simplement les journaux.

+0

C'est vraiment génial! Je ne suis pas sûr au niveau de l'interdépendance, mais dans les cas où les tâches les plus à droite dépendent de celles à leur gauche, vous avez l'équivalent d'un graphique d'analyse de chemin critique. Je vais bricoler avec votre logiciel à coup sûr :) – Phillip

Répondre

4

J'ai un logiciel multi-processus qui fonctionne sur une machine avec 15 cœurs. Voici ce que je fais.

Consigne tous les messages dans syslog. Tracer enfin (sélectionné) 20 dernières minutes consigner les données sur http://www.simile-widgets.org/timeline. Pour garder un oeil sur ce qui est enregistré quand et les modèles que j'utilise syslog viewer. Il y a beaucoup, vous pouvez trouver celui qui vous convient. http://www.google.com/search?aq=0&oq=syslog+vi&sourceid=chrome&ie=UTF-8&q=syslog+viewer

Espérons que cela aide.

Questions connexes