57_.NET___Lambda_のパフォーマンスを最適化する方法.pdf
by
iwasa
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
.NET + Lambda のパフォーマンスを最適 化する方法 2023/7/13 AWS事業本部 岩浅貴大
Slide 2
Slide 2 text
自己紹介 岩浅 貴大(いわさ) クラスメソッド株式会社 AWS事業本部 コンサルティング部 ソリューションアーキテクト
Slide 3
Slide 3 text
アジェンダ 1. Lambda と .NET 2. パフォーマンス向上のアプローチ a. .NET バージョンアップ b. Native AOT c. Lambda のアーキテクチャ 3. パフォーマンス比較 4. まとめ
Slide 4
Slide 4 text
前置き 【DevelopersIO 2022】.NETアプリケーションのAWS移行 https://youtu.be/Lbax8pgFoEc
Slide 5
Slide 5 text
Lambda と .NET
Slide 6
Slide 6 text
AWS Lambda の概要 サーバーレスコンピューティングサービス ❖ イベント駆動型 ❖ サーバーのプロビジョニングや管理が不要 ❖ 実行した時間に応じた従量課金
Slide 7
Slide 7 text
.NET の概要 マイクロソフトによって開発 ❖ .NET Framework と .NET Core ❖ C#, Visual Basic, F# https://learn.microsoft.com/ja-jp/dotnet/architecture/microservices/net-core-net-framework-containers/net-container-os-targets より
Slide 8
Slide 8 text
AWS Lambda での .NET サポート ● マネージドランタイムで LTS の .NET 6 ● カスタムランタイムで STS の .NET 7 https://aws-labs.net/netonaws.html https://aws.amazon.com/developer/language/net/
Slide 9
Slide 9 text
パフォーマンス向上のアプローチ
Slide 10
Slide 10 text
.NET バージョンアップ ● バージョンアップ ○ 新機能 ○ セキュリティ向上 ○ パフォーマンス向上
Slide 11
Slide 11 text
Native AOT ● Just-In-Time ● Ahead-Of-Time ○ ツールチェーンに組み込まれている
Slide 12
Slide 12 text
Lambda アーキテクチャ ● X86_64 と ARM ● .NET の ARM パフォーマンス改善 https://aws.amazon.com/jp/blogs/news/aws-lambda-functions-powered-by-aws-graviton2-processor-run-your-functions-on-arm-and-get-up-to-34-better-price-performance/
Slide 13
Slide 13 text
パフォーマンス比較
Slide 14
Slide 14 text
パフォーマンス比較の前提条件 https://github.com/aws-samples/serverless-dotnet-demo
Slide 15
Slide 15 text
.NET バージョンごとの比較 コールドスタート ウォームスタート p50 p99 p50 p99 .NET Core 3.1 1004.80 1422.78 6.11 29.40 .NET 6 778.74 1470.50 6.41 31.33 .NET 7 1467.56 2423.83 7.16 45.13 .NET 8 (Preview) 1476.39 1878.51 6.01 28.94
Slide 16
Slide 16 text
.NET バージョンごとの比較 コールドスタート ウォームスタート p50 p99 p50 p99 .NET Core 3.1 1004.80 1422.78 6.11 29.40 .NET 6 778.74 1470.50 6.41 31.33 .NET 7 1467.56 2423.83 7.16 45.13 .NET 8 (Preview) 1476.39 1878.51 6.01 28.94
Slide 17
Slide 17 text
.NET バージョンごとの比較 コールドスタート ウォームスタート p50 p99 p50 p99 .NET Core 3.1 1004.80 1422.78 6.11 29.40 .NET 6 778.74 1470.50 6.41 31.33 .NET 7 1467.56 2423.83 7.16 45.13 .NET 8 (Preview) 1476.39 1878.51 6.01 28.94
Slide 18
Slide 18 text
.NET バージョンごとの比較 コールドスタート ウォームスタート p50 p99 p50 p99 .NET Core 3.1 1004.80 1422.78 6.11 29.40 .NET 6 778.74 1470.50 6.41 31.33 .NET 7 1467.56 2423.83 7.16 45.13 .NET 8 (Preview) 1476.39 1878.51 6.01 28.94
Slide 19
Slide 19 text
Native AOT の比較 コールドスタート ウォームスタート p50 p99 p50 p99 .NET 6 778.74 1470.50 6.41 31.33 .NET 7 1467.56 2423.83 7.16 45.13 .NET 7 + Native AOT 372.43 581.62 6.77 45.44 .NET 8 + Native AOT 361.79 515.88 6.01 26.31
Slide 20
Slide 20 text
Native AOT の比較 コールドスタート ウォームスタート p50 p99 p50 p99 .NET 6 778.74 1470.50 6.41 31.33 .NET 7 1467.56 2423.83 7.16 45.13 .NET 7 + Native AOT 372.43 581.62 6.77 45.44 .NET 8 + Native AOT 361.79 515.88 6.01 26.31
Slide 21
Slide 21 text
Native AOT の比較 コールドスタート ウォームスタート p50 p99 p50 p99 .NET 6 778.74 1470.50 6.41 31.33 .NET 7 1467.56 2423.83 7.16 45.13 .NET 7 + Native AOT 372.43 581.62 6.77 45.44 .NET 8 + Native AOT 361.79 515.88 6.01 26.31
Slide 22
Slide 22 text
Native AOT の比較 コールドスタート ウォームスタート p50 p99 p50 p99 .NET 6 778.74 1470.50 6.41 31.33 .NET 7 1467.56 2423.83 7.16 45.13 .NET 7 + Native AOT 372.43 581.62 6.77 45.44 .NET 8 + Native AOT 361.79 515.88 6.01 26.31
Slide 23
Slide 23 text
CPUアーキテクチャ別の比較 コールドスタート ウォームスタート p50 p99 p50 p99 .NET Core 3.1 - x86 1004.80 1422.78 6.11 29.40 .NET Core 3.1 - ARM 1122.70 1225.92 5.55 19.85 .NET 6 - x86 778.74 1470.50 6.41 31.33 .NET 6 - ARM 873.59 944.42 5.50 19.53
Slide 24
Slide 24 text
CPUアーキテクチャ別の比較 コールドスタート ウォームスタート p50 p99 p50 p99 .NET Core 3.1 - x86 1004.80 1422.78 6.11 29.40 .NET Core 3.1 - ARM 1122.70 1225.92 5.55 19.85 .NET 6 - x86 778.74 1470.50 6.41 31.33 .NET 6 - ARM 873.59 944.42 5.50 19.53
Slide 25
Slide 25 text
まとめ
Slide 26
Slide 26 text
まとめ 1. .NET バージョンは最新のマネージドランタイムを使う 2. Native AOT が使える場合はカスタムランタイムも良い 3. Native AOT でコールドスタートの速度が改善される 4. ARM アーキテクチャのほうが速度が改善されるかは処理に依 るが、安定する傾向にありそう
Slide 27
Slide 27 text
No content