分析分布式系统

问题描述 投票:5回答:2

我想知道跟踪分布式系统中性能瓶颈的可能方法。我知道X-Trace及其后代(例如Dapper)之类的工具,但我对方法学而不是特定工具更加好奇。

换句话说,给定一个没有明显瓶颈的分布式系统,您如何研究和提高其性能?

performance profiling distributed distributed-computing hpc
2个回答
3
投票

我使用了一种具有优点和缺点的方法。优点是它可以正常工作-它发现了一些问题,解决这些问题后,它们会表现出出色的快照性能。缺点是这需要大量的手工工作。

我什至写了一本书,并包括了方法。工作是收集带有时间戳记的事件日志,并将它们合并到一个公共时间轴中。然后,您仔细检查它,以跟踪异步代理程序网络中的相关消息流。您正在寻找的是不必要的消息周期或不必要发生的延迟。例如,在查看此图片时,由于任务“将状态发布到DB”而延迟了消息的接收。理解后,实际上可以在单独的线程上完成发布。

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9Ub1JJbS5qcGcifQ==” alt =“在此处输入图像描述”>


0
投票

老实说,这是一个很好的问题,关于什么是最好的方法还没有达成共识。最基本的方法之一是日志记录,您基本上只将一堆系统事件转储到文件中,就可以解析这些日志以找出事件之间的时间间隔,从而确定它们花费的时间。另一种方法是跟踪(由Xtrace使用)。在跟踪中,您跟踪请求的生命周期。例如,如果您向使用微服务体系结构的服务发送请求,则在通过系统微服务时,您将跟踪该请求的线程,进程ID和延迟。

棘手的部分是弄清楚在跟踪请求时要跟踪什么,这将取决于您的分布式系统要完成的工作。例如,性能的一个明显指标是延迟,因此您将测量请求在每个服务上花费的时间。另一个可能有趣的度量标准是争用,因此您可以在请求通过系统时测量CPU中的争用。这些配置文件工具中的许多问题之一是,它们为您提供了系统或请求的总体指标,但是当您要查找性能问题时,您需要弄清楚请求是否是异常值。因此,必须将一个请求的等待时间,争用和内存消耗与系统中的其他类似请求进行比较,以判断它是否异常。]

© www.soinside.com 2019 - 2024. All rights reserved.