## Memo - アムステルダム大学の博士論文 - [[2022__arXiv__CausalRCA - Causal Inference based Precise Fine-grained Root Cause Localization for Microservice Applications|CausalRCA]]と[[2024__FGCS__A fine-grained robust performance diagnosis framework for run-time cloud applications|FIRED]]が貢献に含められている。 ## Abstract Cloud computing provides elastic and on-demand resources for distributed ap-plications to deliver high-quality services. However, the dynamism of underlying cloud infrastructures and complex dependencies between services introduce abnormal performance phenomena, e.g., degradation, which severely affect the quality of services and the user experience. To make services in applications continuously operational, performance diagnosis systems aiming to detect performance anomalies, such as slow response times, and localize their root causes are required. Such kinds of systems have been studied in recent years. A typical performance diagnosis system comprises components for collecting and pre-processing monitoring data, detecting performance anomalies, and localizing root causes. The data collection and pre-processing components reduce noise in the monitoring data and make it available for the performance anomaly detection component to diagnose the system, e.g., using statistical or machine learning methods. To be effective, anomaly detection has to be accurate, robust in fitting different data distributions in real scenarios, and predictive to prevent potential application violations. The root cause localization component aims to accurately identify the underlying causes of performance anomalies, such as resource-related metrics in faulty services. However, a large number of anomalous metrics and complex anomaly propagation paths make it challenging to determine the root cause. To tackle above challenges, we first review the state-of-the-art research and methods for creating a reliable performance diagnosis system from a technical perspective. Furthermore, we propose a comprehensive performance diagnosis system that can effectively detect performance anomalies and localize their root causes to provide actionable insights to operators. クラウドコンピューティングは、高品質なサービスを提供するために、分散アプリケーションに弾力的でオンデマンドなリソースを提供します。しかし、基盤となるクラウドインフラのダイナミズムやサービス間の複雑な依存関係は、サービス品質やユーザーエクスペリエンスに深刻な影響を与える性能低下などの異常現象をもたらします。アプリケーションのサービスを継続的に運用するためには、応答時間の遅さなどの性能異常を検出し、その根本原因を特定することを目的とした性能診断システムが必要です。このようなシステムは近年研究されている。典型的な性能診断システムは、監視データの収集と前処理、性能異常の検出、および根本原因の特定を行うコンポーネントで構成される。データ収集と前処理コンポーネントは、監視データのノイズを低減し、性能異常検出コンポーネントが統計的手法や機械学習手法などを用いてシステムを診断できるようにする。効果的であるためには、異常検知は正確で、実際のシナリオにおけるさまざまなデータ分布に適合するロバスト性があり、潜在的なアプリケーション違反を防止する予測性がなければなりません。根本原因の特定コンポーネントは、不具合のあるサービスにおけるリソース関連のメトリクスなど、パフォーマンス異常の根本原因を正確に特定することを目的としています。しかし、多数の異常メトリクスと複雑な異常伝播経路が、根本原因を特定することを困難にしています。上記の課題に取り組むため、まず技術的な観点から信頼性の高いパフォーマンス診断システムを構築するための最先端の研究と手法をレビューする。さらに、性能異常を効果的に検出し、その根本原因を特定することで、オペレータに実用的な洞察を提供できる包括的な性能診断システムを提案する。 ## Introduction クラウド・コンピューティングは、データの保存、処理、通信をカスタマイズするための弾力性のあるオンデマンド・リソースを提供し、ソフトウェア・アプリケーションの開発、デプロイ、管理の方法を変革する[286]。幅広いコンピューティング・リソースへのオンデマンド・アクセスを提供することで、クラウド環境は、複数のマシンやデータセンターにまたがる分散アプリケーションの構築と実行を可能にし、従来のアプリケーションよりも優れたスケーラビリティとパフォーマンスを実現している。Marketsandmarketsのレポートによると、クラウド・コンピューティング市場は、2022年には5,458億ドルに達し、20271年には1,2409億ドルに拡大するという。大手クラウドプロバイダーであるMicrosoft Azure2社は、5大陸の数千のデータセンターに数千万台の物理サーバーを配備し、7億人以上のユーザーにアプリケーションとサービスを提供している3。 分散型クラウドアプリケーションには、複雑なタスクを実行するためにネットワーク上で相互に通信する複数のコンポーネントやマイクロサービスが含まれていることが多い。マイクロサービス・アーキテクチャの台頭により、アプリケーションは、独立して開発、デプロイ、スケーリングが可能な、より細かく特化したサービスに分解されつつある。多くの企業がマイクロサービス・テクノロジーによってコアビジネスを提供している。しかし、このような分散は、アプリケーションのパフォーマンスを保証する上で新たな課題をもたらします。分散アプリケーションのパフォーマンスは、サービス間の複雑な依存関係やクラウド環境固有のダイナミズムのために不安定になる可能性があり、リソースの飽和によって引き起こされるレスポンスタイムの低下などのパフォーマンス異常は、ユーザーエクスペリエンスの品質に深刻な影響を与える可能性があります。そのため、分散アプリケーションのパフォーマンス問題を診断し、緩和することは極めて重要です。 性能診断とは、異常な性能現象(例えば、劣化)を検出し、将来のインシデントを防止するために異常を予測し、性能異常の根本原因を解明することであると定義され、分散アプリケーションにとって不可欠です[108]。大規模なパフォーマンスデータは、アプリケーションやインフラの稼動状態を継続的に監視することで収集できます。パフォーマンスデータに基づいて、異常検知を開発することで、リソース使用量の突然の急増やレスポンスタイムの遅 延などの異常な振る舞いを特定し、将来のインシデントを防止するための潜在的な問題をオペレータに警告することができます [107]。さらに、パフォーマンス診断によって、パフォーマンス異常の根本原因に関する洞察が得 られるため、オペレータは、サービスの移行やリソース・スケーリングなど、これらの問題の 影響を軽減するための迅速な措置を講じることができる[45]。したがって、効果的な性能診断は、分散アプリケーションの信頼性、可用性、および応答性を維持し、 ユーザが期待するサービスレベルを確実に提供するために不可欠です。 分散アプリケーションの性能診断システムは近年研究されている。Ibidunmoye ら[108]は、性能異常の検出とボトルネックの特定について概説し、基本的な研究課題を設定し、検出方法を分類し、研究動向と未解決の課題を提案しました。近年、人工知能(AI)ベースの性能診断システムが人気を博している。その理由は、AIの手法が従来の統計的手法を凌駕し、大規模データや複雑なシナリオに適応できるからである[209]。AIベースの性能診断システムは、データ収集、データ前処理、異常検出、および根本原因の特定という4つの主要コンポーネントで構成されると要約できる[209, 250]。データ収集と前処理はその後の処理にとって重要であり、研究は主にデータ品質に関するものである。性能異常検出に関する研究は、主に収集された性能データに基づいて、正確かつ効率的に異常を検出できるモデルを開発することに重点を置いており、統計的手法や機械学習(ML)手法が開発されている[108]。一方、根本原因の特定に関する研究は、故障のあるサービスにおけるリソース関連のメトリクスなど、パフォーマンス異常の根本原因を特定できる技術の開発に重点を置いている [209]。パフォーマンス診断システムのための有望な進歩にもかかわらず、AIベースの手法は潜在的な危険に直面しており、ロバスト性の低さや説明不可能性のために社会的信用を失う可能性がある[266]。その結果、この分野の研究は、分散アプリケーションのパフォーマンス問題をプロアクティブに検出し、対処することができるパフォーマンス診断システムを開発し、ユーザー満足度と、優れた精度と堅牢性などの最適な診断パフォーマンスを実現することを目指している。 分散アプリケーションのためのAIベースの性能診断システムの開発は進んでいるものの、まだいくつかの課題を解決する必要がある。データの観点からは、主に2つの課題がある。1つ目は、より多くのデータラベルの必要性である。ほとんどのモニタリングデータには、MLベースのモデルを訓練するためにすぐに使用できるラベルが含まれていないためである[218]。時系列データのラベル付けは手作業で時間がかかることが多く、性能診断システムのスケーラビリティを制限する可能性がある[104]。第2の課題はデータノイズであり、これは異常検知手法の性能に重大な影響を与え、誤検知率を増加させる可能性がある [211]。分散ネットワークから収集された監視データにはノイズが含まれることが多く、性能異常を正確に検出することは困難である。AI ベースの性能診断システムで使用される ML 手法については、ロバスト性の低さなど AI モデルの潜在的な危険性を防止し、ユーザーの満足度を満たすための信頼性要件が必要である [128]。具体的には、AIベースの性能診断システムでは、いくつかの課題に対処する必要がある。第一に、分散アプリケーションのサービスは異種混合であることが多く、その特性も様々である。第二に、検出精度とロバスト性の間にはトレードオフの関係があり、検出手法によっては、精度は高いが、様々なパフォーマンス問題を処理するのに十分なロバスト性がない場合がある[293]。第三に、サービス間の複雑なデペンデンシーは、故障のあるサービスから生じる異常伝播の正確なモデル化を困難にする。最後に、システムには多くの異常なメトリクスが導入されているため、パフォーマンス異常の根本原因を特定することは困難であり、パフォーマンス問題への対処やパフォーマンスの最適化が遅れることになります。これらの課題に対処することは、ロバストで効果的な分散アプリケーションのパフォーマンス診断システムを開発する上で非常に重要です。 ![[Pasted image 20240627163018.png|600]] 分散アプリケーションにおける性能診断の課題を克服するために、本論文では、異常を正確に検出し、その根本原因を特定し、オペレータに実用的な洞察を提供できる包括的な性能診断システムを開発することを目的とする。提案システムは、まずCPU使用率、メモリ使用率、ネットワーク追跡などの性能データを収集するためのリアルタイムモニタリングと可視化ツールを提供する。次に、性能データに基づいて、診断システムはML技術を活用して異常を検出し、原因推論と依存性分析を使用して性能異常の根本原因を特定する。さらに、提案システムは、教師なし学習技術とデータクレンジングアルゴリズムを活用してモニタリングデータを前処理することで、データラベルの間違いやデータノイズの課題に対処する。分散アプリケーションから収集した実データを用いてシステムを評価し、パフォーマンス異常の検出とローカライズにおける有効性と効率性を実証する。その結果、提案する性能診断システムは、分散アプリケーションの再責任、可用性、応答性を強化し、ユーザ満足度を向上させることを目指す。図1.1にシステムの概要を示す。