2017-02-05 1 views
-1

私は現在、AWSラムダを使用してffmpegでいくつかの短いビデオエンコーディングを行っています。私のラムダファンクション(現在実行中のfuncを持つ)用にプロビジョニングされた既存のコンテナがある場合、再度呼び出すと、この既存のコンテナを使用できますか?AWSラムダが呼び出す別のコンテナを保証することができます

これは、1つではなく2つ以上のcpuの重いタスクを実行するため、機能の実行時間が大幅に増加します。

これが当てはまる場合、新しいコンテナでラムダ機能を開始することは可能ですか?

lambdaは各関数の特定のメモリ割り当てを保証しますが、関数がCPUバインドの場合、同時に使用されるとボトルネックになる可能性はありませんか?

私はhttps://aws.amazon.com/blogs/compute/container-reuse-in-lambda/をチェックアウトしました。

ありがとうございます!

+1

私が理解しているところでは、CPUとネットワークは自分の関数に合わせて選択したメモリ値に応じて調整されるので、メモリ割り当てだけでなく、CPUやネットワークの割り当ても保証されます。コンテナを持つサーバーの処理能力が高すぎる場合は、要求の負荷を分散して他のサーバーでコンテナを開始するだけだと思います。ラムダが各要求に対して新しいコンテナを使用しないことを保証する方法はありません。 – forrestmid

答えて

2

AWSラムダ関数は、他の関数(場合によっては関数)から分離するコンテナ内で実行されます。指定されたコンテナは、複数のラムダ呼び出しによって同時に使用されません。

コードがロードされている既存のコンテナが自由に実行できない場合、新しいコンテナが開始されます( 'コールドスタート')。コードがロードされたコンテナは、後続の呼び出しで再使用できますが、以前の呼び出しが完了した場合(「ウォームスタート」)のみです。

ラムダを強制的にコールドスタートすることはできません。ウォームスタートを強制することはできません。呼び出し履歴の知識と現在および将来の作業負荷の期待に基づいて、独自のスケジューリングアルゴリズムを使用します。

割り当てられたCPUは設定されたRAMに比例します。

ラムダでのコンテナの再利用については、this blog postを参照してください。

関連する問題