6

Supponiamo di avere una tonnellata (un flusso continuo) di richieste da elaborare e ogni richiesta ha diverse fasi. Ad esempio: "connessione all'origine dati", "lettura dei dati dall'origine dati", "convalida dei dati", "elaborazione dei dati", "connessione al dissipatore di dati", "scrittura dei risultati sul datastore".Come visualizzare il comportamento di molti processi simultanei a più stadi?

Quali metodi di visualizzazione o anche strumenti si adattano bene a visualizzare il comportamento di un tale sistema?

Mi piacerebbe essere in grado di vedere quali fasi impiegano molto tempo e come le fasi delle diverse richieste sono allineate l'una rispetto all'altra (ad esempio, per vedere che l'origine dei dati risponde più a lungo quando si accede da troppe richieste contemporaneamente).

Se c'erano solo poche decine di richieste, sarei OK con poche decine di singole linee temporali colorati, ma per poche migliaia che non si adatta bene. Penso di poter andare via con N timeline colorate, dove N è il "fattore di concorrenza", ma 1) forse c'è qualcosa di meglio, 2) forse esistono strumenti per questo?

P.S. Plug spudorato: una volta individuato il modo migliore di visualizzazione, lo aggiungerò al mio strumento elegante chiamato timeplot;)

P.P.S. Un'altra spina spudorata: ho deciso di scrivere uno strumento separato: splot. Ecco cosa può fare, sulla base di una banalmente semplice log e un awk one-liner:

alt text

Si mostra 160 nuclei di un cluster svolgere compiti alimentati a loro da RabbitMQ. Il blu è "prendere dati", l'arancione è "informatica", il bianco è "non fare nulla". Diversi problemi sono immediatamente evidenti da questo diagramma, che sarebbe molto difficile da trovare semplicemente guardando i registri.

+0

Questo è abbastanza impressionante! Non sono chiaro sul livello di interdipendenza, ma nei casi in cui i compiti più a destra dipendono da quelli alla loro sinistra, hai l'equivalente di un grafico di analisi del percorso critico. Sarò armeggiare con il tuo software di sicuro :) – Phillip

risposta

4

Ho un software multi processo che viene eseguito su un computer con 15 core. Ecco cosa faccio.

Registra tutti i messaggi di syslog. Infine traccia (selezionato) gli ultimi 20 minuti di dati di registro su http://www.simile-widgets.org/timeline. Per tenere d'occhio ciò che viene registrato quando e i pattern uso il visualizzatore syslog. Ce ne sono molti che puoi trovare quello che fa per te. http://www.google.com/search?aq=0&oq=syslog+vi&sourceid=chrome&ie=UTF-8&q=syslog+viewer

Spero che questo aiuti.

Problemi correlati