【发布时间】:2010-10-18 11:56:13
【问题描述】:
假设我有大量(连续的)请求要处理,每个请求都有几个阶段。例如:“连接数据源”、“从数据源读取数据”、“验证数据”、“处理数据”、“连接数据接收器”、“将结果写入数据接收器”。
哪些可视化方法甚至工具非常适合可视化此类系统的行为?
我希望能够查看哪些阶段需要很长时间,以及不同请求的阶段如何相互对齐(例如,查看数据源在访问时响应时间更长)一次请求多个请求)。
如果只有几十个请求,我可以使用几十个单独的彩色时间线,但对于几千个就不太合适了。我想我可以摆脱 N 个彩色时间线,其中 N 是“并发因素”,但是 1)也许有更好的东西,2)也许有用于此的工具?
附:无耻的插件:一旦我找到了最好的可视化方式,我会把它添加到我的漂亮工具中,叫做timeplot ;)
附言又一个无耻插件:我决定单独写一个工具:splot。这是它可以做的事情,基于一个非常简单的日志和一个 awk 单行:
它显示了一个集群的 160 个核心执行由 RabbitMQ 提供给它们的任务。蓝色是“获取数据”,橙色是“计算”,白色是“什么都不做”。从这张图中可以立即看出几个问题,仅通过查看日志很难找到。
【问题讨论】:
-
这太棒了!我不清楚相互依赖的程度,但在最右边的任务依赖于左边的任务的情况下,你有一个关键路径分析图的等价物。我肯定会修补你的软件 :)
标签: debugging concurrency monitoring visualization distributed