## Summary for Tweet #SRE論文紹介[Wu+,ICSE2021]:マイクロサービスシステムの性能問題に対して、メトリクスレベルの細粒度で根本原因を特定するMicroDiagを提案し、Sock Shopの実験でtop-3で97%の精度を達成している。 提案法は、偽の因果関係を除外するためにIstioから取得されるネットワーク依存関係データを事前知識とし、構造因果モデルベースのDirectLinGAMとGranger因果性を用いてメトリクス間の因果グラフを生成し、ピアソン相関係数でエッジ重み付けしたグラフに対してPageRankを実行する。 [Wu+,ICSE2021]: MicroDiag: Fine-grained Performance Diagnosis for Microservice Systems paper: https://inria.hal.science/hal-03155797/document ## Memo - ベルリン工科大学とスウェーデンの企業Elastisys AB所属の著者らによるICSE Workshopの会議論文。 - マイクロサービスシステムの性能問題をメトリクスの細粒度での特定は、多数の異常メトリクス、不均質な異常症状、頻繁な更新、広範囲の原因により困難である。深層学習ベースの手法は再トレーニングが必要であり、パターン認識ベースの手法は、計算量が大きいかつ、既知問題のみしか特定できず、因果推論ベースの手法は、多様な異常症状に対応できない。 - 提案法は、多数の偽の因果関係を排除するために、Istioから取得されるコンポーネント間の依存関係からサーバ・コンテナ・サービス間のコンポーネント依存グラフを構築し、この依存グラフを基に、メトリクス単位の因果グラフを構築する。依存グラフは、同著者らによる[[2020__NOMS__MicroRCA - Root Cause Localization of Performance Issues in Microservices|MicroRCA]]の帰属グラフを拡張したもの。 - ![[Pasted image 20230503112441.png|600]] - 性能問題の診断を開始するトリガーとしての異常検知として、各サービスの応答速度に対して[[BIRCH]]クラスタリングを用いる。 - 異常伝播の特性を、1)リソースメトリクス間の伝播、2)リソースとサービスメトリクス間の伝播、3) サービス間の伝播に分ける。 - リソースメトリクス間は、[[構造的因果モデル]]を採用する。サーバーリソースは、それが実行するコンテナリソースの総和の線形関数であり、異常なリソースメトリクスは、非ガウス分布に従うと仮定される[20]。因果推論には[[DirectLiNGAM]]を適用する。 $m_{i}^{c_x} = \sum_{k(j)<k(i)}b_{ij}m_{j}^{c_y}+e_{i}^{c_{x}}$ - リソースとサービス間については、[[Granger因果性|Granger因果]]検定を用いる。[[赤池情報量規準|AIC]]に基づいて2つの指標間のタイムラグを求め、[[カイ二乗検定]]する。リソースメトリクス間のGranger因果は偽の因果をもたらすことがあるため、SCMの結果で較正する。サービスメトリクス間は、依存グラフのエッジ方向を逆転させるだけである。 - ランキング:隣接メトリクスの[[ピアソン相関係数]]でエッジに重み付けし、[[PageRank]]でスコア付けする。 - 実験は、[[Sock Shop]]にCPU-HogとMemory leak故障を1分間注入し、5分の正常状態をつくる。監視インターバルは5秒。ベースラインは、[[2018__ICST__Localizing Faults in Cloud Systems|LOUD]]と[[2014__INFOCOM__CauseInfer―Automatic and distributed performance diagnosis with hierarchical causality graph in large distributed systems|CauseInfer]]である。実験の結果、MicroDiagはPR@5ではほぼ100%の精度で特定されている。メモリリークがやや低いのは、メモリリークの問題が複数のリソースメトリクスに現れるためである。CauseInferが最も低い結果であり、[[PCアルゴリズム]]の問題である。 - ![[Pasted image 20230503113613.png|600]] - 感想:コールグラフを事前知識として用いる因果探索法を採用しているタイプの手法であるが、サービスメトリクスとリソースメトリクス間ではGranger因果、リソースメトリクス間ではSCMベースのDirectLingamを用いていることは興味深い。他の論文でもPCでは難しいことが取り上げられており、この論文でもPCを用いるCauseInferが最も低精度となっている。しかし、[[2022__arXiv__CausalRCA - Causal Inference based Precise Fine-grained Root Cause Localization for Microservice Applications|CausalRCA]]でも書かれているように、細粒度の特定は難しい問題であるため、提案法で本当にPR@5で100%近い精度が再現されるかは疑問である。例えば、異常時間が1分+正常時間が5分という組み合わせに恣意性がないかに疑問がある。 ## Abstract 大規模なアプリケーションを開発する際には、柔軟性、拡張性、俊敏性に優れたマイクロサービス・アーキテクチャーを採用することが一般的になっています。 しかし、サービスの数が多く、依存関係が複雑であるため、パフォーマンス問題の診断が難しく、時間がかかるという問題があります。 MicroDiagは、マイクロサービスシステムのパフォーマンス問題の根本原因を細かい粒度で特定する自動化システムです。 MicroDiagは、コンポーネントの依存関係グラフを構築し、多様な異常症状に対して因果推論を行うことで、メトリクスの因果関係グラフを導出し、根本原因を推論します。[[Kubertentes]]クラスタ上で動作するマイクロサービスのベンチマークで実験的に評価した結果、MicroDiagは、最も可能性の高い上位3つの原因に対して97%の精度で原因を特定し、従来の手法よりも31.1%以上高い精度で原因を特定することができました。 [[2021__ICSE__MicroDiag - Fine-grained Performance Diagnosis for Microservice Systems__translations]]