# Characterizing Microservice Dependency and Performance: Alibaba Trace Analysis ## abstract(日本語訳) 軽量でルーズ結合なマイクロサービスは、モノリシックアプリケーションをコンテナ上で徐々に置き換えつつある。マイクロサービスの特性を理解することは、アーキテクチャを有効活用するうえで不可欠だが、本番環境での包括的な研究はこれまで存在しなかった。本論文では Alibaba クラスタにおける大規模マイクロサービスの展開を詳細に分析する。コールグラフの依存構造と実行時性能の特徴づけを中心に置き、従来の DAG 型データ並列ジョブとの定量的な差異を明らかにする。コールグラフはヘビーテール分布に従い、トポロジーはツリー状で、多数のホットスポットが存在することを示す。依存関係には循環依存・強結合依存・並列依存の 3 種が観測され、設計最適化に利用できることを明らかにする。また性能面では、CPU 干渉への感度がメモリ干渉より顕著に高いことを実測する。最後に、確率的モデルにより大規模なマイクロサービストレースを模擬生成し、実測値の統計的性質を良好に再現できることを示す。 ## 論文情報 | 項目 | 内容 | |---|---| | 会議 | ACM SoCC 2021(ACM Symposium on Cloud Computing) | | 日時・場所 | 2021 年 11 月 1–4 日、シアトル、WA、米国 | | DOI | https://doi.org/10.1145/3472883.3487003 | | 著者 | Shutian Luo(SIAT/CAS)、Huanle Xu(Macau 大学)、Chengzhi Lu(SIAT/CAS)、Kejiang Ye(SIAT/CAS)、Guoyao Xu(Alibaba)、Liping Zhang(Alibaba)、Yu Ding(Alibaba)、Jian He(Alibaba)、Chengzhong Xu(Macau 大学) | | データセット | Alibaba Cluster Trace Program (公開: https://github.com/alibaba/clusterdata) | ## 概要 本論文は、Alibaba クラスタにおける 20,000 超のマイクロサービスを対象とした 7 日間のトレース(100 億超のコールグラフ)を分析し、次の 4 項目を体系的に明らかにした研究である。 1. **コールグラフの構造解析**: サイズ・深さ・次数分布などグラフ位相の特性 2. **コールグラフのクラスタリング**: グラフ学習(InfoGraph + K-means)による同一サービスのグラフ分類 3. **マイクロサービス間依存関係**: 循環依存・強結合依存・並列依存の 3 種 4. **実行時性能**: CPU/メモリ干渉およびコールレートがレスポンスタイム(RT)に与える影響 ## 問題設定 既存のマイクロサービスベンチマーク(DeathStarBench・μSuite・Acme Air 等)は規模が小さく(40 サービス以下)、コールグラフトポロジーが固定的で、本番環境の特性を反映しない。また、Markov 連鎖等の従来モデルは「同一の下流マイクロサービスを複数回繰り返し呼び出す」という本番挙動を捉えられない。本論文は、本番スケールの実測トレースによる包括的な特性解析と、大規模トレース模擬生成手法の開発という 2 つの問いに取り組む。 ## 提案手法 ### トレース収集 Kubernetes 管理のベアメタルクラスタ上で Alibaba の Application Real-Time Monitoring Service(Dapper 相当)により収集。各コールに TraceID・rpcID・UM/DM・インターフェース名・RT・通信パラダイム(RPC 76%/MQ 23%/IP 1%)を記録。 ### コールグラフ解析 - サイズ・深さ・次数分布を DAG 型バッチジョブトレースと比較 - InfoGraph(教師なしグラフ表現学習)でグラフを 20 次元ベクトルに変換し K-means クラスタリング ### 依存関係の分類 - **循環依存(cyclic dependency)**: UM が DM に呼ばれ返す依存。強依存(同一インターフェース、83% の確率で折り返す)と弱依存を区別 - **強結合依存(coupled dependency)**: 呼び出し確率×呼び出し回数が高いペアを定義。10% 超のペアが strong coupled - **並列依存(parallel dependency)**: UM が同時に複数 DM を並列呼び出し。強並列依存は全体の 0.6% のみ ### 確率的グラフ生成モデル 各マイクロサービスのタイプ(blackhole/relay/normal leaf/normal relay/DB/Memcached)と階層ごとの分布から、実測特性を保持する大規模コールグラフを確率的に生成。グラフ深さの理論分布(定理 6.1)とノード数分布(定理 6.2)を数学的に証明。 ## 新規性 - Alibaba 本番クラスタ規模(20,000 超サービス・100 億コールグラフ)でのマイクロサービス依存・性能の**初の包括的特性解析** - コールグラフのツリー状構造・ヘビーテール・ホットスポット・動的性という **4 つの固有特性**を DAG 型バッチジョブと対比して定量化 - コールグラフ内の **3 種の依存関係**(循環・強結合・並列)を新たに分類し、設計最適化指針を提示 - 確率的グラフ生成モデルにより KL 乖離度 0.05–0.16 で実測分布を再現 ## 実験設定 - 対象: Alibaba 本番 Kubernetes クラスタ、オンラインサービスはコンテナで稼働、バッチジョブと同居 - 期間: 7 日間 - 規模: 20,000 超マイクロサービス、100 億超コールグラフ - ベースライン: DAG 型バッチジョブトレース(同クラスタの Fuxi スケジューラ由来)との比較 ## 実験結果 ### コールグラフ構造 - グラフサイズ: Burr 分布に従い、10% 超が 40 マイクロサービス超。最大は数百〜数千 - グラフ深さ: 平均 4.27(標準偏差 3.25)、最頻値は 3 - 次数: 10% 超の stateless マイクロサービスが out-degree 5 以上、in-degree はほぼ 1(ツリー構造の証拠) - ホットスポット: 5% のマイクロサービスが 90% 以上のサービスで共用、95% の呼び出しを処理 ### 依存関係 - 全依存の 7.8% 以上が循環依存で、そのうち 2.7% が強依存 - 10% 超のペアで strong coupled dependency を確認。17% はその DM が他に共用されていない - 強並列依存(確率 0.9 超)は 0.6% のみ ### 実行時性能 - コールレート(MCR)と CPU 使用率の相関が強い(80% 超が Spearman 相関 > 0.6) - ホスト CPU 使用率 40% で RT が 20% 劣化、80% で 30% 劣化 - メモリ使用率 60% 未満では RT への干渉はほぼ無視できる - 同一クラスタ内のグラフは RT が安定(イントラ/インタークラスタ分散比 < 0.6 が 90% 超) ### グラフ生成モデル - 深さ分布: KL 乖離度 0.16、ランキング保存 - ノード数分布: KL 乖離度 0.05–0.06 ## 考察 マイクロサービスのコールグラフは、従来の研究が仮定する DAG とは本質的に異なる構造を持つ。ツリー状の広がり・ヘビーテール分布・ホットスポット・動的トポロジーという 4 特性は、リソーススケジューリングや性能予測の設計前提を変える。特に、CPU 干渉がメモリ干渉より顕著に性能劣化を引き起こすという結果は、「CPU 使用率のホスト間均衡化」を最重要スケジューリング指針として裏づける。強結合依存ペアのインターフェース統合や循環依存のデッドロック回避も、設計最適化の具体的方向として提示される。 ## 強み - 本番スケール(100 億コールグラフ)に基づく実証的な分析で、ベンチマーク研究の暗黙の前提を覆す - 統計・グラフ学習・確率論的モデリングの 3 手法を組み合わせた体系的なアプローチ - Alibaba Cluster Trace Program として公開されたデータに基づく再現性 ## 弱点・課題 - データは単一クラウドプロバイダ(Alibaba)の 7 日間に限定。他社・他期間への一般化は未検証 - グラフ生成モデルは「同一ノードが複数グラフにまたがる共有ノード」を未対応(将来課題として明示) - CNN ベースやマルコフ連鎖ベースの既存アプローチを実装比較せず、定量的なベンチマーク競合がない ## 関連 - 概念: [[マイクロサービスコールグラフ]] / [[分散トレーシング]] / [[Fault Localization]] / [[AIOps]] - エンティティ: [[Alibaba Group]] / [[Shutian Luo]] / [[Chengzhong Xu]] / [[University of Macau]] / [[SIAT]] - 関連ソース: [[@2025__arXiv__MicroRemed - Benchmarking LLMs in Microservices Remediation]] / [[@2021__SoCC__Alibaba Cluster Trace Program]] - 一次データ: https://github.com/alibaba/clusterdata