在系列的第7 部分中,使用適用於Java 的AWS 開發工具包的Amazon Aurora Serverless v2 的資料API - 資料API 與SnapStart 的結合,我們使用Data 測量了連接到Amazon Aurora Serverless v2 PostgreSQL 資料庫的Lambda 函數的冷啟動時間和熱啟動時間3 個用例的API :
在本文中,我們希望將這些測量值與使用 DynamoDB 而不是 Amazon Aurora Serverless v2 的 Data API 時的測量值進行比較。
在我關於 Lambda SnapStart 的文章系列中,我們已經對類似的應用程式進行了此類測量,但在文章中使用不同的 Lambda 記憶體設定測量 Java 21 的熱啟動。
Amazon Aurora Serverless v2 和 DynamoDB 的應用程式資料 API 非常相似:
現在讓我們將所有測量值放在一起。
冷 (c) 和熱 (m) 啟動時間(以毫秒為單位):
方法 | c p50 | c p75 | c p90 | c p99 | c p99.9 | c 最大 | w p50 | w p75 | w p90 | w p99 | w p99.9 | w 最大值 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
資料 API,未啟用 SnapStart | 3154.35 | 3237 | 3284.91 | 3581.49 | 3702.12 | 3764.92 | 104.68 | 173.96 | 271.32 | 572.11 | 1482.89 | 2179.7 |
DynamoDB,未啟用 SnapStart | 3157.6 | 3213.85 | 3270.8 | 3428.2 | 3601.12 | 3725.02 | 5.77 | 6.50 | 7.81 | 20.65 | 90.20 | 1423.63 |
資料 API,無需啟動即可啟用 SnapStart | 1856.11 | 1994.61 | 2467.83 | 3229.11 | 3238.80 | 3241.75 | 61.02 | 113.32 | 185.37 | 639.35 | 1973.30 | 2878.5 |
DynamoDB、SnapStart 無需啟動即可啟用 | 1626.69 | 1741.10 | 2040.99 | 2219.75 | 2319.54 | 2321.64 | 5.64 | 6.41 | 7.87 | 21.40 | 99.81 | 1355.09 |
資料 API,透過啟動啟用 SnapStart | 990.84 | 1069.04 | 1634.84 | 2120.00 | 2285.03 | 2286.9 | 60.06 | 106.35 | 185.37 | 581.27 | 1605.37 | 2658.24 |
DynamoDB、SnapStart 透過啟動啟用 | 702.55 | 759.52 | 1038.50 | 1169.66 | 1179.05 | 1179.36 | 5.73 | 6.51 | 7.87 | 21.75 | 92.19 | 328.41 |
在本文中,我比較了使用 Data API 連接到 Amazon Aurora Serverless v2 PostgreSQL 資料庫的 Lambda 函數與連接到 DynamoDB 資料庫的 3 個用例的冷啟動時間和熱啟動時間的測量結果:
我們觀察到,在 Lambda 函數上未啟用 SnapStart 的情況下,兩者的冷啟動時間相當相似。 如果啟用了 SnapStart(沒有啟動,尤其是啟動啟動),Amazon Aurora Serverless v2 的資料 API 的冷啟動時間明顯更長,特別是對於 >= 90 的百分位數。我需要更深入地挖掘以了解這種差異,因為我沒有預期它會那麼大,尤其是在使用底漆的情況下。也許原因是像 DynamoDB 這樣的 AWS 原生服務更能感知 SnapStart,我可以更好地處理連線復原。
與 DynamoDB 相比,Amazon Aurora Serverless v2 的資料 API 的熱啟動(執行)時間始終要高得多,我也預期 DynamoDB 以其單位數或兩位數毫秒回應時間而聞名。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3