Skip to main content
QUICK REVIEW

[論文レビュー] Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing

Simon Shillaker, Peter Pietzuch|arXiv (Cornell University)|Feb 21, 2020
Cloud Computing and Resource Management参考文献 55被引用数 37
ひとこと要約

Faasm は Faaslets を導入し、サーバーレス計算のための共有メモリ状態を備えた WebAssembly ベースの軽量アイソレーションを提供します。これは、コンテナベースのプラットフォームと比較して顕著なスピードアップとメモリ削減を実現します。Proto-Faaslets を介した迅速なコールドスタートと、効率的なデータ共有のための2層状態(ローカル/グローバル)を可能にします。

ABSTRACT

Serverless computing is an excellent fit for big data processing because it can scale quickly and cheaply to thousands of parallel functions. Existing serverless platforms isolate functions in ephemeral, stateless containers, preventing them from directly sharing memory. This forces users to duplicate and serialise data repeatedly, adding unnecessary performance and resource costs. We believe that a new lightweight isolation approach is needed, which supports sharing memory directly between functions and reduces resource overheads. We introduce Faaslets, a new isolation abstraction for high-performance serverless computing. Faaslets isolate the memory of executed functions using software-fault isolation (SFI), as provided by WebAssembly, while allowing memory regions to be shared between functions in the same address space. Faaslets can thus avoid expensive data movement when functions are co-located on the same machine. Our runtime for Faaslets, Faasm, isolates other resources, e.g. CPU and network, using standard Linux cgroups, and provides a low-level POSIX host interface for networking, file system access and dynamic loading. To reduce initialisation times, Faasm restores Faaslets from already-initialised snapshots. We compare Faasm to a standard container-based platform and show that, when training a machine learning model, it achieves a 2x speed-up with 10x less memory; for serving machine learning inference, Faasm doubles the throughput and reduces tail latency by 90%.

研究の動機と目的

  • データ集約型のサーバーレスワークロードに対して、メモリ安全で低オーバーヘッドなアイソレーションモデルを提案する。
  • 強いアイソレーションを維持しつつ、効率的なインメモリ状態共有を実現する。
  • 事前初期化されたスナップショット(Proto-Faaslets)を通じた高速な初期化を提供する。
  • 複数の言語とレガシーコードに対応した最小限のホストインターフェイスを提供する。
  • ML および線形代数ワークロード全般で、コンテナベースのデプロイメントに対する性能向上を示す。

提案手法

  • Faaslets、WebAssembly およびソフトウェア故障隔離(SFI)を用いたアイソレーション抽象化を導入する。
  • CPU とネットワークの分離のため、Linux cgroups とネットワークネームスペースによって制約された単一のアドレス空間内で複数の Faaslets を実行する。
  • Distributed Data Objects (DDOs) を介して、ローカル共有メモリとグローバル分散状態の2層状態アーキテクチャを提供する。
  • Proto-Faaslets を用いて、クロスホスト復元を数百マイクロ秒で実現し、迅速なコールドスタートを達成する。
  • ネットワーキング、ファイルI/O、動的リンク、メモリ管理のための最小限の POSIX/WASI に似たホストインターフェイスを提供する。
  • ユーザーコードを WebAssembly にコンパイルし、検証し、信頼できるホストインターフェイスとリンクして、WAVM を WebAssembly VM として実行する。)

実験結果

リサーチクエスチョン

  • RQ1軽量な WebAssembly ベースの Faaslets は、マルチテナントのサーバーレスワークロードに対して、効率的なインメモリ状態共有を提供しつつメモリ安全なアイソレーションを実現できるか。
  • RQ2データ集約タスクにおける Faaslets と従来のコンテナとの性能およびリソース使用のトレードオフは何か。
  • RQ3データ移動とネットワーク転送を減らす2層のローカル/グローバル状態アーキテクチャの有効性はどの程度か。
  • RQ4Proto-Faaslets は高速なクロスホスト復元を実現し、クラスター全体でのコールドスタート遅延を低減できるか。
  • RQ5Faaslets 内で多様なワークロードを WebAssembly にコンパイルした場合、言語サポートはどれほど広いか。

主な発見

  • SGD による機械学習モデルの学習は、コンテナベースのデプロイメントと比較して実行時間を60%改善、ネットワーク転送を70%削減、メモリ使用量を90%削減する。
  • TensorFlow Lite と MobileNet を用いた機械学習推論は、最大スループットが200%以上向上し、テールレイテンシを90%削減する。
  • 分散線形代数(Python/Numpy)は性能オーバーヘッドがほとんどなく、ネットワーク転送を13%削減する。
  • Faasm はメモリフットプリントを削減し、Proto-Faaslets による迅速な初期化を提供し、複数ホスト間で復元可能であることによりスループットを向上させる。
  • Faaslets はメモリフットプリントが200 KB未満、コールドスタート時間が10 ms未満を達成(Proto-Faaslets によりクロスホスト復元が数百マイクロ秒提供される)。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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