Skip to main content
QUICK REVIEW

[論文レビュー] FaaSLight: General Application-Level Cold-Start Latency Optimization for Function-as-a-Service in Serverless Computing

Xuanzhe Liu, Jinfeng Wen|arXiv (Cornell University)|Jul 17, 2022
Cloud Computing and Resource Management被引用数 13
ひとこと要約

FaaSLight は、関数レベルのコールグラフを用いて、必須でない(オプションの)コードを必須のアプリケーションコードから分離することで、関数としてのサービス(FaaS)のコールドスタート遅延を低減するアプリケーションレベル最適化を提案する。オプションのコードをオンデマンドでロードすることで、コードロード遅延を最大78.95%(平均28.78%)削減し、合計応答遅延を最大42.05%(平均19.21%)削減する。これは、下位層のプラットフォームを変更せず、開発者の作業を要せず、最先端技術比で21.25倍の向上を達成する。

ABSTRACT

Serverless computing is a popular cloud computing paradigm that frees developers from server management. Function-as-a-Service (FaaS) is the most popular implementation of serverless computing, representing applications as event-driven and stateless functions. However, existing studies report that functions of FaaS applications severely suffer from cold-start latency. In this paper, we propose an approach namely FaaSLight to accelerating the cold start for FaaS applications through application-level optimization. We first conduct a measurement study to investigate the possible root cause of the cold start problem of FaaS. The result shows that application code loading latency is a significant overhead. Therefore, loading only indispensable code from FaaS applications can be an adequate solution. Based on this insight, we identify code related to application functionalities by constructing the function-level call graph, and separate other code (i.e., optional code) from FaaS applications. The separated optional code can be loaded on demand to avoid the inaccurate identification of indispensable code causing application failure. In particular, a key principle guiding the design of FaaSLight is inherently general, i.e., platform- and language-agnostic. The evaluation results on real-world FaaS applications show that FaaSLight can significantly reduce the code loading latency (up to 78.95%, 28.78% on average), thereby reducing the cold-start latency. As a result, the total response latency of functions can be decreased by up to 42.05% (19.21% on average). Compared with the state-of-the-art, FaaSLight achieves a 21.25X improvement in reducing the average total response latency.

研究の動機と目的

  • FaaS アプリケーションにおけるコールドスタート遅延という顕著な性能ボトルネックを解消すること。これは、合計応答時間の最大80%を占めることがある。
  • 必須でない(オプションの)コードを必須のアプリケーションコードから特定・分離し、初期化オーバーヘッドを低減すること。
  • 下位のオペレーティングシステムやハイパーバイザーに変更を加えることなく、プラットフォームおよび言語に依存しないソリューションを設計すること。
  • オプションのコードをオンデマンドでロードすることで、不可欠と誤って特定されるコードを防ぎ、アプリケーションの障害を回避すること。
  • 手動でのエンジニアリングや開発者による干渉を一切要せず、顕著な性能向上を達成すること。

提案手法

  • アプリケーションの機能に不可欠なコードを特定するため、静的解析により依存関係を分析する関数レベルのコールグラフを構築する。
  • 特定されたオプションのコードをメインアプリケーションバンドルから分離し、初期コードロードサイズを低減する。
  • 実行時に必要な場合にのみ、オプションの関数を取得・実行するための軽量なランタイムメカニズムを統合する。
  • ランタイムまでオプションのコードロードを延期することで、後方互換性と正しさを保証し、ウォームスタートパフォーマンスへの影響を最小限に抑える。
  • 評価のため、AWS Lambda および Google Cloud Functions で動作する Python および JavaScript 用の、プラットフォームおよび言語に依存しないプロトタイプを実装する。
  • オンデマンドロードに軽量なファイル I/O を使用し、オーバーヘッド(約100 ms)が一般的なコールドスタート遅延に比べて著しく小さいことを確認する。

実験結果

リサーチクエスチョン

  • RQ1FaaS アプリケーションにおける高いコールドスタート遅延の主な根本的原因は何か?
  • RQ2下位層のサーバーヲレスプラットフォームを変更せず、アプリケーションレベルのコード解析がコールドスタート遅延を低減できるか?
  • RQ3関数レベルのコールグラフ解析は、不可欠なコードとオプションのコードをどれほど正確に識別できるか?
  • RQ4オプションコードのオンデマンドロードに伴うパフォーマンスオーバーヘッドはどれほどで、その利点を上回るか?
  • RQ5提案された最適化は、多様なプログラミング言語およびサーバーヲレスプラットフォームで顕著な改善を達成できるか?

主な発見

  • アプリケーションコードのロード遅延は、コールドスタート遅延の主要因であり、合計遅延の大部分を占める。
  • FaaSLight は、実世界の FaaS アプリケーションにおいて、コードロード遅延を最大78.95%、平均28.78%削減する。
  • 合計応答遅延は最大42.05%、平均19.21%削減され、エンドツーエンドの顕著なパフォーマンス向上が確認された。
  • このアプローチは、最先端技術比で平均合計応答遅延を21.25倍改善する。
  • オンデマンドロードメカニズムによるオーバーヘッドは約100 msにとどまり、コールドスタート遅延に比べて無視できるほど小さく、ウォームスタートパフォーマンスに影響しない。
  • このソリューションは、Python や JavaScript といった異なるプログラミング言語、AWS Lambda や Google Cloud Functions といった異なるサーバーレスプラットフォームでも有効であり、一般化可能性が裏付けられた。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。