paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Sleuth: A Trace-Based Root Cause Analysis System for Large-Scale Microservices with Graph Neural Networks

Sleuth:基于追踪与图神经网络的大规模微服务根因分析系统
ASPLOS Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 42023匹配度 2/10 · 该论文用图神经网络对大规模微服务进行基于trace的根因分析,属于ML用于系统调试/运维,与用户关注的静态分析、Agentic程序、LLM/Agent改进静态分析或形式化验证、浮点程序分析、贝叶斯程序分析均无直接关联;仅在“机器学习与程序语言/调试”标签上有弱相关性。引用 21 inbox
Yu Gan, Guiyang Liu, Xin Zhang, Qi Zhou, Jiesheng Wu, Jiangwei Jiang
crossref: 2026-09-12

AI 速览

一句话:提出基于 trace 与图神经网络的大规模微服务根因分析系统 Sleuth,应对规模导致的 RPC 依赖复杂与经验规则失效问题。

云微服务规模持续增长,导致 RPC 依赖图日益复杂,并加剧 tail-of-scale 效应,使许多检测端到端性能问题根因的经验规则变得不可靠;同时,现有开源微服务基准规模过小,难以在生产规模(数百甚至数千服务与 RPC)上评估性能调试算法。本文提出 Sleuth,一个基于 trace 的根因分析系统,并利用图神经网络对大规模微服务追踪与调用依赖进行建模,以定位端到端性能问题的根因。其核心目标是在大规模微服务场景下实现更可靠的根因分析,并回应现有基准难以支撑生产级评估的问题。

问题
大规模微服务中 RPC 依赖图复杂且存在 tail-of-scale 效应,传统经验规则难以可靠定位端到端性能问题根因;现有开源基准规模不足以评估生产级性能调试算法。
方法
Sleuth 是一个基于 trace 的根因分析系统,利用图神经网络对大规模微服务的追踪数据与 RPC 调用依赖进行建模,从而推断端到端性能问题的根因。
评估
评估关注数百至数千服务与 RPC 的生产规模微服务场景;摘要指出已有开源微服务基准规模过小,无法满足此类性能调试算法的评估需求。
原文摘要(Abstract)

Cloud microservices are being scaled up due to the rising demand for new features and the convenience of cloud-native technologies. However, the growing scale of microservices complicates the remote procedure call (RPC) dependency graph, exacerbates the tail-of-scale effect, and makes many of the empirical rules for detecting the root cause of end-to-end performance issues unreliable. Additionally, existing open-source microservice benchmarks are too small to evaluate performance debugging algorithms at a production-scale with hundreds or even thousands of services and RPCs.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot10116,
  title = {Sleuth: A Trace-Based Root Cause Analysis System for Large-Scale Microservices with Graph Neural Networks},
  author = {Yu Gan and Guiyang Liu and Xin Zhang and Qi Zhou and Jiesheng Wu and Jiangwei Jiang},
  booktitle = {ASPLOS},
  year = {2023},
  doi = {10.1145/3623278.3624758}
}