Как визуализировать поведение многих параллельных многоступенчатых процессов? - PullRequest
6 голосов
/ 18 октября 2010

Предположим, у меня есть тонна (непрерывный поток) запросов для обработки, и каждый запрос имеет несколько этапов. Например: «подключение к источнику данных», «чтение данных из источника данных», «проверка данных», «обработка данных», «подключение к приемнику данных», «запись результата в приемник данных».

Какие методы визуализации или даже инструменты хорошо подходят для визуализации поведения такой системы?

Я бы хотел видеть, какие этапы занимают много времени, и как этапы разных запросов выровнены относительно друг друга (например, чтобы увидеть, что источник данных реагирует дольше, когда к ним обращается слишком много). много запросов одновременно).

Если бы было всего несколько десятков запросов, я бы согласился с несколькими десятками отдельных цветных шкал времени, но для нескольких тысяч, которые не подходят. Я думаю, что могу обойтись без N цветных временных шкал, где N - это «коэффициент параллелизма», но 1) возможно, есть что-то лучше, 2) возможно, существуют инструменты для этого?

P.S. Бесстыдный плагин: как только я найду лучший способ визуализации, я добавлю его в свой изящный инструмент под названием timeplot ;)

P.P.S. Еще один бесстыдный плагин: я решил написать отдельный инструмент: splot . Вот что он может сделать, основываясь на тривиально простом журнале и на одной строке в awk:

alt text

Показывает 160 ядер кластера, выполняющих задачи, переданные им RabbitMQ. Синий - это «выборка данных», оранжевый - «вычисления», белый - «ничего не делать». Из этой диаграммы сразу становятся очевидными некоторые проблемы, которые очень трудно найти, просто взглянув на журналы.

1 Ответ

4 голосов
/ 18 октября 2010

У меня есть многопроцессное программное обеспечение, которое работает на машине с 15 ядрами. Вот что я делаю.

Записывать все сообщения в системный журнал. Наконец, график (выбранный) за последние 20 минут регистрирует данные на http://www.simile -widgets.org / timeline Чтобы следить за тем, что регистрируется, когда и шаблоны, я использую средство просмотра системного журнала. Есть много, что вы можете найти тот, который подходит вам. http://www.google.com/search?aq=0&oq=syslog+vi&sourceid=chrome&ie=UTF-8&q=syslog+viewer

Надеюсь, это поможет.

...