[論文レビュー] Sizeless: Predicting the optimal size of serverless functions
この論文では、1つのメモリ設定からの監視データのみを用いて、サーバess関数の最適メモリサイズを予測するSizelessという手法を提案する。これにより、時間のかかるパフォーマンステストの必要がなくなる。平均予測誤差は15.3%であり、91.3%の関数で最適または2番目に良いメモリサイズが選択され、AWS上での平均スピードアップは39.7%、コスト削減は2.6%を達成する。
Serverless functions are a cloud computing paradigm where the provider takes care of resource management tasks such as resource provisioning, deployment, and auto-scaling. The only resource management task that developers are still in charge of is selecting how much resources are allocated to each worker instance. However, selecting the optimal size of serverless functions is quite challenging, so developers often neglect it despite its significant cost and performance benefits. Existing approaches aiming to automate serverless functions resource sizing require dedicated performance tests, which are time-consuming to implement and maintain. In this paper, we introduce an approach to predict the optimal resource size of a serverless function using monitoring data from a single resource size. As our approach does not require dedicated performance tests, it enables cloud providers to implement resource sizing on a platform level and automate the last resource management task associated with serverless functions. We evaluate our approach on three different serverless applications, where it selects the optimal memory size for 71.7% of the serverless functions and the second-best memory size for 22.3% of the serverless functions, which results in an average speedup of 43.6% while simultaneously decreasing average costs by 10.2%.
研究の動機と目的
- サーバess関数における手動による不適切なメモリサイズ設定という課題に取り組み、コストとパフォーマンスに顕著な影響を与えること。
- パフォーマンステストに特化したメモリサイズ最適化の必要性を排除すること。これは時間のかかる作業であり、保守が困難である。
- クラウドプロバイダーが、AWS Compute Optimizerと同様に、大規模に自動メモリサイズの推奨を行うことを可能にすること。
- 最小限の監視データを用いて、合成データから実世界のサーバessアプリケーションへ一般化可能なモデルを開発すること。
- 開発者が管理する最後のリソース管理タスク(リソースサイズの設定)を自動化することで、サーバessコンピューティングを真にサーバーレスにすること。
提案手法
- 合成サーバess関数ジェネレータが、代表的なコード断片を組み合わせることで2,000の多様な関数を生成する。
- 各合成関数について、AWS Lambda上で6つのメモリサイズでリソース消費量と実行時間を測定する。
- 1つのメモリサイズからの監視データのみを用いて、すべてのメモリサイズにおける実行時間を予測する多目的回帰モデルを訓練する。
- 1つの設定からの実行時間およびリソースメトリクス(CPU、メモリ、I/Oなど)を活用し、他の設定におけるパフォーマンスを推定する。
- 本手法は、4つの実世界のサーバessアプリケーション上で評価され、1つのメモリサイズからの監視データを用いて、他の設定の予測と最適化が行われる。
- 訓練後9か月後に収集された本番アプリケーションのデータを用いて、長期的な一般化性能が検証された。
実験結果
リサーチクエスチョン
- RQ1合成サーバess関数で訓練されたモデルは、1つのサイズからの監視データのみを用いて、複数のメモリサイズにおける実行時間を正確に予測できるか?
- RQ2このようなモデルは、パフォーマンステストを実施せずに、実世界のサーバess関数の最適または近似最適なメモリサイズを特定できるか?
- RQ3デフォルトまたは不適切なメモリサイズ設定と比較して、モデルは実行時間とコストをどの程度削減できるか?
- RQ4合成データで訓練されたモデルは、実世界のアプリケーションにどの程度一般化できるか。特に、訓練データ収集後数か月後にテストされた場合にどうか?
- RQ5本アプローチは、クラウドプロバイダーがユーザー関数のパフォーマンステストを実施せずに、大規模に自動メモリサイズ推奨を提供できるか?
主な発見
- 1つのメモリサイズからの監視データに基づき、他のメモリサイズの実行時間を平均15.3%の誤差で予測できる。
- サーバess関数の79.0%において、最適なメモリサイズが選択され、12.3%では2番目に良いサイズが選択され、合計で91.3%の関数が近似的に最適な設定を受け取る。
- 選択されたメモリサイズにより、評価されたアプリケーション全体で平均39.7%のスピードアップが達成される。
- 本アプローチにより、デフォルトまたは不適切な設定と比較して、平均コストが2.6%削減される。
- モデルは実世界のアプリケーションへ効果的に一般化され、訓練後9か月後に測定された本番アプリケーションでも有効である。
- 本アプローチにより、クラウドプロバイダーがユーザー関数のパフォーマンステストを実施せずに、自動メモリサイズ推奨を提供できるようになる。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。