# FIRM: An Intelligent Fine-Grained Resource Management Framework
for SLO-Oriented Microservices
Conference/Journal: Arxiv
Created: November 5, 2020 12:56 PM
URL: https://arxiv.org/pdf/2008.08509.pdf
Year: 2020
## Abstract
> Modern user-facing, latency-sensitive web services include numerous distributed, intercommunicating microservices that promise to simplify software development and operation. However, multiplexing compute-resources across microservices is still challenging in production because contention for shared resources can cause latency spikes that violate the service-level objectives (SLOs) of user requests. This paper presents FIRM, an intelligent fine-grained resource management framework for predictable sharing of resources across microservices to drive up overall utilization. FIRM leverages online telemetry data and machine-learning methods to adaptively (a) detectlocalize microservices that cause SLO-violations, (b) identify low-level resources in contention, and (c) take actions to mitigate SLO-violations by dynamic reprovisioning. Experiments across four microservice benchmarks demonstrate that FIRM reduces SLO violations by up to 16.7× while reducing the overall requested CPU limit by up to 62.3%. Moreover, FIRM improves performance predictability by reducing tail latencies by up to 11.5×.
(以下,DeepL翻訳)
最近のユーザー向けのレイテンシに敏感なウェブサービスには、ソフトウェアの開発と運用を簡素化することが期待されている分散型の相互通信型マイクロサービスが多数含まれています。しかし、マイクロサービス間で計算リソースを多重化することは、本番環境ではいまだに困難です。この論文では、マイクロサービス間でリソースを予測可能に共有し、全体的な利用率を向上させるためのインテリジェントできめ細かなリソース管理フレームワークであるFIRMを紹介します。FIRMは、オンラインテレメトリデータと機械学習手法を活用して、(a) SLO違反の原因となるマイクロサービスを局所的に検出し、(b)競合中の低レベルリソースを特定し、(c)動的なリビジョニングによってSLO違反を緩和するためのアクションを実行することができます。4つのマイクロサービスベンチマークの実験では、FIRMはSLO違反を最大16.7倍削減し、全体の要求CPU制限を最大62.3%削減することが実証されています。さらに、FIRMはテールレイテンシを最大11.5倍削減することで、パフォーマンスの予測可能性を向上させています。
## 1 Introduction
Netflix [64]、Google [72]、Amazon [82] のような、ユーザーに向けた、レイテンシに敏感な最新の Web サービスは、仮想マシン(VM)またはコンテナ(最近ではコンテナの人気が高まっています)として、共有マルチテナントのコンピュートリソース上で実行するマイクロサービスとして構築されることが増えています。これらのマイクロサービスは、エンドツーエンドのレイテンシなどのサービスレベル目標(SLO)を維持するために、共有リソースを効率的に多重化しながら、多様な負荷特性を処理する必要があります。SLO違反は、1つ以上の「重要な」マイクロサービスインスタンス(§2で定義)が(日中または予測不可能なワークロードパターンによる)負荷スパイクや共有リソースの競合を経験した場合に発生し、これらの両方がリクエストを処理するのに予想以上に長い時間がかかること、すなわちレイテンシースパイク[3, 9, 18, 26, 31, 48, 53, 54, 90, 91]につながります。したがって、SLO違反を減らすためには、マイクロサービス間で共有リソースを効率的に多重化することが重要です。従来のアプローチ(オーバープロビジョニング[32,80]、リカレントプロビジョニング[49,62]、オートスケーリング[35,51,61,75,78,81,117]など)は、パフォーマンスモデル、手作りのヒューリスティック(静的ポリシーなど)、または機械学習アルゴリズムを使用して、マイクロサービスインスタンスにより多くのCPUとメモリを割り当てることでSLO違反を削減します。残念ながら、これらのアプローチには主に2つの問題があります。第一に、キャッシュ、メモリ、I/O チャネル、ネットワークリンクなどの細かい粒度のリソースを効率的に多重化することができないため、SLO 違反を減らすことができない可能性があります。例えば、図1のKubernetesコンテナオーケストレーションシステム[16]では、メモリ帯域幅のような共有リソースの競合に起因するテールレイテンシのスパイクを低減することができません。第二に、大規模なマイクロサービス(キューイングシステム[23, 35]など)の高忠実度のパフォーマンスモデル(および関連するスケジューリングヒューリスティック)を構築して、低レベルのリソース競合を捕捉することができるようにするには、多大な人的努力とトレーニングが必要です。さらに、マイクロサービスの更新や移行が頻繁に行われると、モデルの再構築のために、人間の経験に基づいた工学的な作業が繰り返されることになります。
FIRMフレームワーク 本稿では、マイクロサービス間の共有リソースをより細かい粒度で管理し、リソースの競合を減らしてパフォーマンスの分離とリソース利用率を向上させるためのマルチレベル機械学習(ML)ベースのリソース管理(RM)フレームワークであるFIRMを紹介することで、上記の問題点を解決します。図1に示すように、FIRMがデフォルトのKubernetesオートスケーラーよりも優れたパフォーマンスを発揮するのは、FIRMがマイクロサービスを適応的にスケールアップして(ローカルコアを追加して)メモリ帯域幅の割り当てを増やし、コアごとの割り当てを効果的に維持するからです。FIRMは、システムの状態を把握するためのオンラインテレメトリデータ(リクエストトレースデータやハードウェアカウンタなど)と、リソース競合の推定と緩和のためのMLモデルを活用しています。テレメトリデータとMLモデルにより、FIRMはワークロードの変化に対応し、もろい手作業のヒューリスティックの必要性を軽減することができます。特に、FIRMでは以下のようなMLモデルを使用しています。
1. SVMに基づいたSLO違反の局所化. 本研究では,テレメトリデータを用いてクリティカルパスを抽出し,異常インスタンスを検出することで,SLO違反の原因となっているマイクロサービスを効率的に局所化する方法を提案する(§3.2,§3.3).
2. RLベースの緩和 本研究では,(a)大規模な状態空間問題に対応し,(b)伝達学習を用いて個々のマイクロサービスに合わせたRLエージェントのチューニングが可能なRLベースのリソース競合緩和メカニズムを提案する(§3.4).
3. オンライントレーニング&パフォーマンス異常注入。私たちは 3.6 節で)包括的な性能異常を提案する。インジェクションフレームワークを使用して、人為的にリソースの競合状況を作り出すことで、地に足の着いたデータを生成します。前述のMLモデルを学習するために必要とされる.
4. 実装と評価 オープンソース1 Kubernetes用のFIRMの実装 コンテナオーケストレーションシステム [16]。我々は この実装を4つの実世界のマイクロサービスベンチマーク[30, 107]で検証しました(§4)。結果。FIRMは、Kubernetesの自動スケーリング[16, 50]やAIMD(Additive increase multiplicative decrease)ベースの手法[34, 93]など、最先端のRMフレームワークを大幅に凌駕しています。
- 全体的なSLO違反をKubernetesオートスケーリングと比較して最大16.7倍、AIMDベースの手法と比較して9.8倍削減し、全体的な要求CPUを62.3%も削減している。
- SLO違反を緩和する時間では、AIMDベースの手法に対して最大9.6倍、Kubernetes autoscalingに対して最大30.1倍の差をつけています。
- 平均テールレイテンシを最大11.5×まで削減し、全体的なパフォーマンスの予測可能性を向上させます。
- SLO違反の根本原因となっているマイクロサービスインスタンスを93.8%の精度でローカライズすることに成功しています。
FIRMはなぜ機能するのか?FIRMは、オーバープロビジョニングなしでSLO違反を緩和することができますが、これには次のような理由があります。第一に、RLベースのフィードバックループで低レベルリソースとアプリケーションパフォーマンスの間の依存関係をモデル化し、不確実性とノイズの多い測定に対処していること。第二に、SVMモデルがSLO違反の緩和のために考慮する必要があるマイクロサービスのみをフィルタリングする2レベルのアプローチを取っていること。