在我們的文章系列的第2 部分中,我們探索如何使用包含GraalVM 21 運行時的GraalVM Native Image 的自定義運行時來開發和部署純Lambda 函數(不使用Spring Boot 3 等任何框架) ,在第3 部分中,我們測量了使用此方法使用1024 MB 記憶體的Lambda 函數的效能(冷啟動和熱啟動時間)。
在本文中,我們將使用 256 到 1536 MB 之間的不同記憶體設定來測量 Lambda 的冷啟動和熱啟動,以探索成本和效能之間的權衡。
我們將重複使用本系列文章第 3 部分中描述的完全相同的實驗,但記憶體設定在 256 到 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 Native Image 和 GraalVM 21 運行時的自訂運行時,測量了記憶體設定在 256 到 1536 MB 之間的純 Lambda 函數的冷啟動和熱啟動。
我們觀察到,對於設定較低的記憶體(如 256 或 512 MB),熱啟動時間彼此非常接近,且差異主要在高百分位(> = p90)中可見。 256 和 512 MB 的冷啟動時間相當長,從 768 MB 開始,透過為 Lambda 提供更多內存,冷啟動時間只會稍微減少一點,而對於大於 1024 MB 的內存沒有任何明顯差異。 根據您的效能要求,您可以為 Lambda 提供少於 1024 MB 的記憶體(正如我們最初在範例應用程式中給出的那樣),並且使用 768 MB 甚至更少的記憶體可以實現非常好的性價比。
在發佈時,還提供了較新的版本(例如GraalVM 23 運行時),因此您可以按照本系列第2 部分中的說明進行版本更改並重新編譯GraalVM Native 映像,並重新測量效能.
以上是帶有 GraalVM Native Image 的 Lambda 函數 - 使用不同的 Lambda 記憶體設定部分緩解冷啟動和熱啟動的詳細內容。更多資訊請關注PHP中文網其他相關文章!