2017-11-13 4 views
4

私は質問があり、私は答えを得るのが大好きです。1536 MBを使用しているときにラムダ関数を実行するほうがはるかに速いのはなぜですか?

私は最大メモリ31 MBを使用し、設定された割り当てられたメモリは2556.68ミリ秒かかるとラムダ関数を持っています。

ただし、割り振られたメモリを最大1536 MBにすると、実行に621.81ミリ秒かかり、使用されるMAXメモリはまったく同じ31 MBになります。

なぜ、使用されたメモリが2つのケースでまったく同じ場合、ラムダ関数がより高速に実行されるのですか?

答えて

4

これは、コンテナが割り当てられるCPUの量が、要求するメモリ量に比例するためです。

AWS Lambdaは、M3タイプなどの汎用Amazon EC2インスタンスタイプと同じ比率でメモリに比例するCPUパワーを割り当てます。たとえば、256 MBのメモリを割り当てる場合、ラムダ関数は128 MBだけを割り当てた場合よりもCPU共有の2倍を受け取ります。

http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction-function.html

M3インスタンスがメモリの1.5ギガバイトで、次のものが、その比率になるよう、RAMの30ギガバイト当たり8つのXeon E5-2670またはXeonプロセッサE5-2670 V2ハイパースレッドを有する約1.5×(8 ÷30)×2.6 GHz(CPUの1 GHz)。 128 MBには、その約1/12しかありません。

1

ラムダ関数に割り当てられたメモリを増やすと、CPUの消費電力も増加します。メモリを増やすとコストも増加することに注意してください。

AWS Lambda FAQs

Q:どのようにAWSラムダ関数に割り当てられたコンピューティングリソースはありますか?

AWSラムダのリソースモデルでは、機能に必要なメモリ量を選択し、比例したCPU消費電力とその他のリソースが割り当てられます。たとえば、256MBのメモリを選択すると、ラムダ機能に約2倍のCPUパワーが割り当てられます。これは、128MBのメモリを要求し、CPUの電力の半分は512MBのメモリを要求します。メモリを128MBから1.5GBまで64MB単位で設定できます。

関連する問題