[論文レビュー] Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider
この論文は production Azure Functions FaaS ワークロードを特徴づけ、冷起動を削減しつつ固定のキープアライブ手法より資源を少なく使う実用的なハイブリッドヒストグラム方針を提案します。結果をシミュレーションと OpenWhisk 実験で検証し、本番の Azure 実装について論じます。
Function as a Service (FaaS) has been gaining popularity as a way to deploy computations to serverless backends in the cloud. This paradigm shifts the complexity of allocating and provisioning resources to the cloud provider, which has to provide the illusion of always-available resources (i.e., fast function invocations without cold starts) at the lowest possible resource cost. Doing so requires the provider to deeply understand the characteristics of the FaaS workload. Unfortunately, there has been little to no public information on these characteristics. Thus, in this paper, we first characterize the entire production FaaS workload of Azure Functions. We show for example that most functions are invoked very infrequently, but there is an 8-order-of-magnitude range of invocation frequencies. Using observations from our characterization, we then propose a practical resource management policy that significantly reduces the number of function coldstarts,while spending fewerresources than state-of-the-practice policies.
研究の動機と目的
- Azure Functions の production FaaS ワークロードを特徴づけて、呼び出しパターン、トリガ、リソース需要を理解する。
- 呼び出し頻度、トリガ、メモリ使用量が冷起動コストとリソースプロビジョニングにどう影響するかを定量化する。
- Adaptive policies を開発・評価して、現在のプロバイダの実践を超えるリソース浪費を増やさずに冷起動を減らす。
- 研究者が現実的な FaaS ワークロードをモデリングするのに役立つ実装の洞察と sanitized な workload traces を提供する。
提案手法
- 4つの Azure Functions データセットを収集・分析する: 機能ごとの呼び出し回数(1分ビン)、機能ごとのトリガ、機能ごとの実行時間、アプリケーションごとのメモリ使用量。
- 関数、アプリケーション、トリガを特徴づけて、アプリ毎の関数数の分布、トリガ構成、呼び出しパターンを理解する。
- レンジ制限付きアイドル時間ヒストグラムと標準のキープアライブを組み合わせ、必要に応じて時系列予測(ARIMA)を用いてアプリケーションごとのプレウォーミングとキープアライブウィンドウを設定するハイブリッドヒストグラム方針を提案する。
- シミュレーションと Apache OpenWhisk において方針を実装・評価し、固定のキープアライブベースラインと比較して冷起動を削減する。
- 本番の Azure Functions の展開に関する議論を提供し、サニタイズ済みの本番トレースデータセットを共有する。
実験結果
リサーチクエスチョン
- RQ1Azure Functions の production FaaS ワークロードの特徴は、トリガ、呼び出し頻度、リソース需要の観点でどのようになっていますか?
- RQ2呼び出しパターンとメモリ使用量は冷起動と全体のリソース効率にどのように関連しますか?
- RQ3適応的なアプリケーションごとの方針は、固定のキープアライブ方針よりも資源浪費を増やすことなく冷起動をより効果的に減らせますか?
- RQ4提案された方針は実システムに実装可能で、OpenWhisk のような既存の FaaS プラットフォームと互換性がありますか?
- RQ5研究者が現実的な FaaS ワークロードを構築する際に役立つ本番の洞察とトレースには何がありますか?
主な発見
- Most functions are invoked very infrequently, with an 8-order-of-magnitude range between most and least popular invocations.
- 50% of functions run in less than 1 second; 75% have max execution time under 1s, and 90% under 60s.
- Applications exhibit a 4x variation in memory usage across the dataset, and 81% of apps are invoked at most once per minute on average.
- A large fraction of invocations come from a small set of popular apps/functions (e.g., 18.6% most popular account for 99.6% of invocations).
- The hybrid histogram policy reduces cold starts while spending fewer resources than fixed keep-alive policies; ARIMA-based forecasting helps for infrequent invocations, and the approach is feasible in OpenWhisk and production Azure Functions.
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。