記事シリーズのパート 2 では、GraalVM 21 ランタイムを使用した GraalVM ネイティブ イメージを含むカスタム ランタイムを使用して、(Spring Boot 3 などのフレームワークを使用せずに) 純粋な Lambda 関数を開発およびデプロイする方法を検討しました。パート 3 では、このアプローチを使用した 1024 MB のメモリでの Lambda 関数のパフォーマンス (コールドおよびウォーム スタート時間)。
この記事では、256 MB から 1536 MB までのさまざまなメモリ設定で Lambda のコールド スタートとウォーム スタートを測定し、コストとパフォーマンスのトレードオフを調査します。
この記事シリーズのパート 3 で説明したのとまったく同じ実験を再利用しますが、メモリ設定は 256 MB から 1536 MB の間で異なります。
実験の結果は次のとおりです:
コールド (c) およびウォーム (m) の開始時間 (ミリ秒):
Memory setting | c p50 | c p75 | c p90 | c p99 | c p99.9 | c max | w p50 | w p75 | w p90 | w p99 | w p99.9 | w max |
---|---|---|---|---|---|---|---|---|---|---|---|---|
256 MB | 822.74 | 833.50 | 845.25 | 923.88 | 952.96 | 953.84 | 4.04 | 4.59 | 5.47 | 18.55 | 137.10 | 471.76 |
512 MB | 620.04 | 621.40 | 657.70 | 705.37 | 727.57 | 727.97 | 4.16 | 4.65 | 5.46 | 14.32 | 64.54 | 229.29 |
768 MB | 561.63 | 574.11 | 589.82 | 628.15 | 633.83 | 634.23 | 4.23 | 4.73 | 5.55 | 13.01 | 42.31 | 203.22 |
1024 MB | 525.77 | 532.12 | 542.32 | 632.56 | 635.73 | 636.11 | 4.16 | 4.69 | 5.46 | 12.30 | 37.25 | 211.83 |
1280 MB | 515.37 | 524.20 | 539.08 | 577.57 | 624.39 | 624.52 | 4.23 | 4.77 | 5.64 | 12.80 | 34.67 | 126.97 |
1536 MB | 504.16 | 516.40 | 528.93 | 548.86 | 628.15 | 628.31 | 4.26 | 4.73 | 5.55 | 12.70 | 44.03 | 105.46 |
この記事では、GraalVM 21 ランタイムで GraalVM Native Image を含むカスタム ランタイムを使用して、256 ~ 1536 MB のメモリ設定を持つ純粋な Lambda 関数のコールド スタートとウォーム スタートを測定しました。
256 MB や 512 MB などの低めのメモリ設定でも、ウォーム スタート時間が互いに非常に近く、主に高いパーセンタイルで違いが見られることがわかります (>= p90)。コールドスタート時間は、256 MB と 512 MB では非常に長く、768 MB から開始すると、Lambda にさらに多くのメモリを与えることでほんの少しだけ短縮されますが、1024 MB を超えるメモリでは目立った違いはありません。 パフォーマンス要件に応じて、サンプル アプリケーションで最初に指定した 1024 MB よりも少ないメモリを Lambda に与えることができ、768 MB またはそれより少し少ないメモリとのトレードオフで非常に優れた価格パフォーマンスを実現できます。
公開時には、新しいバージョン (GraalVM 23 ランタイムなど) も利用できるようになったため、バージョンを変更し、シリーズのパート 2 の手順に従って GraalVM ネイティブ イメージを再コンパイルし、パフォーマンスを再測定します。 .
以上がGraalVM ネイティブ イメージを使用した Lambda 関数 - 異なる Lambda メモリ設定を使用してコールド スタートとウォーム スタートを測定する部分の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。