【问题标题】:How to visualize the behavior of many concurrent multi-stage processes?如何可视化许多并发多阶段进程的行为?
【发布时间】:2010-10-18 11:56:13
【问题描述】:

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

哪些可视化方法甚至工具非常适合可视化此类系统的行为?

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

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

附:无耻的插件:一旦我找到了最好的可视化方式,我会把它添加到我的漂亮工具中,叫做timeplot ;)

附言又一个无耻插件:我决定单独写一个工具:splot。这是它可以做的事情,基于一个非常简单的日志和一个 awk 单行:

它显示了一个集群的 160 个核心执行由 RabbitMQ 提供给它们的任务。蓝色是“获取数据”,橙色是“计算”,白色是“什么都不做”。从这张图中可以立即看出几个问题,仅通过查看日志很难找到。

【问题讨论】:

  • 这太棒了!我不清楚相互依赖的程度,但在最右边的任务依赖于左边的任务的情况下,你有一个关键路径分析图的等价物。我肯定会修补你的软件 :)

标签: debugging concurrency monitoring visualization distributed


【解决方案1】:

我有一个多进程软件,可以在一台 15 核的机器上运行。这就是我所做的。

将所有消息记录到系统日志。最后在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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2020-09-08
    相关资源
    最近更新 更多