# 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