如何可视化许多并发多阶段流程的行为?

时间:2010-10-18 11:56:13

标签: debugging concurrency monitoring visualization distributed

假设我有一个(连续流)请求要处理,并且每个请求都有几个阶段。例如:“连接到数据源”,“从数据源读取数据”,“验证数据”,“处理数据”,“连接到数据接收器”,“将结果写入数据接收器”。

哪种可视化方法甚至工具都能很好地显示这种系统的行为?

我希望能够看到哪些阶段需要很长时间,以及不同请求的阶段如何相互对齐(例如,看到数据源在被访问时响应的时间更长一次请求很多)。

如果只有几十个请求,我可以使用几十个单独的彩色时间表,但是对于几千个不合适的时间表。我想我可以摆脱N色时间线,其中N是“并发因素”,但1)也许有更好的东西,2)也许存在这方面的工具?

P.S。无耻的插件:一旦我找到最佳的可视化方式,我会将它添加到我的名为timeplot的漂亮工具中;)

P.P.S。另一个无耻的插件:我决定写一个单独的工具:splot。这是它可以做的,基于一个简单的简单日志和awk单行:

alt text

它显示了160个集群的核心,执行RabbitMQ提供的任务。蓝色是“获取数据”,橙色是“计算”,白色是“无所事事”。从这个图中可以看出几个问题,只需查看日志就很难找到。

1 个答案:

答案 0 :(得分:4)

我有一个在15核心机器上运行的多进程软件。这就是我的工作。

将所有消息记录到syslog中。最后在http://www.simile-widgets.org/timeline上绘制(选中)最后20分钟的日志数据。要密切关注什么时候记录和使用syslog查看器的模式。有很多你可以找到适合你的。 http://www.google.com/search?aq=0&oq=syslog+vi&sourceid=chrome&ie=UTF-8&q=syslog+viewer

希望这有帮助。