>Java >java지도 시간 >GraalVM 네이티브 이미지를 사용한 Lambda 함수 - 콜드 및 웜 스타트를 방지하는 부분

GraalVM 네이티브 이미지를 사용한 Lambda 함수 - 콜드 및 웜 스타트를 방지하는 부분

Patricia Arquette
Patricia Arquette원래의
2024-10-29 12:27:29880검색

Lambda function with GraalVM Native Image - Part easuring cold and warm starts

소개

시리즈 2부에서는 GraalVM 21 런타임과 함께 GraalVM 네이티브 이미지가 포함된 사용자 정의 런타임을 사용하여 순수 Lambda 기능(Spring Boot 3과 같은 프레임워크를 사용하지 않고)을 개발하고 배포하는 방법을 살펴보았습니다.

이 기사에서는 이 접근 방식을 사용하여 Lambda 함수의 성능(콜드 및 웜 시작)을 측정합니다.

GraalVM 네이티브 이미지가 포함된 사용자 지정 런타임을 사용하여 Lambda 함수의 콜드 및 웜 스타트 측정

측정을 위해 파트 2의 샘플 애플리케이션을 사용하고 모든 Lambda 함수에 1024MB 메모리를 제공합니다.

아래 실험 결과는 제품 검색을 담당하는 Java Lambda 핸들러 클래스에 매핑된 Lambda 함수 GetProductByIdWithPureJava21GraalVMNativeImageLambda를 사용하여 1시간 동안 100번 이상의 콜드 스타트와 약 100,000번의 웜 스타트를 재현한 것을 기반으로 합니다(저장됨). DynamoDB에서) 해당 ID로. 이를 위해 부하 테스트 도구를 사용했지만 Serverless-artillery 또는 Postman과 같이 원하는 도구를 사용할 수 있습니다.

콜드(c) 및 웜(m) 시작 시간(ms):

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
525.77 532.12 542.32 632.56 635.73 636.11 4.16 4.69 5.46 12.30 37.25 211.83

결론

이 기사에서는 GraalVM 21 런타임과 함께 GraalVM 네이티브 이미지가 포함된 사용자 정의 런타임을 사용하여 1024MB 메모리를 갖춘 순수 Lambda 함수의 성능(콜드 및 웜 스타트)을 측정했습니다.

SnapStart가 활성화된 상태에서 수행한 다양한 Lambda 메모리 설정을 사용하고 DynamoDB 요청 프라이밍을 사용하여 Java 21에서 콜드 및 웜 스타트 측정 기사의 성능 측정값을 비교하면 콜드 및 웜 시작 시간이 훨씬 낮음을 알 수 있습니다. SnapStart와 함께 순수 Lambda 함수를 사용하는 것과 비교하여 GraalVM 네이티브 이미지를 사용하고 프라이밍에 대해 설명했습니다. 물론 SnapStart와 GraalVM 네이티브 이미지의 두 접근 방식에는 서로 다른 장점과 단점이 있으며 이에 대해서는 별도의 문서에서 살펴보겠습니다.

게시 당시 GraalVM 23 런타임과 같은 최신 버전도 출시되었으므로 버전을 변경하고 시리즈 2부의 지침에 따라 GraalVM 네이티브 이미지를 다시 컴파일한 후 Lambda 성능을 다시 측정하세요. .

시리즈의 다음 기사에서는 다양한 Lambda 메모리 설정(256~1536MB)이 Lambda 성능에 미치는 영향을 살펴보겠습니다. 메모리 설정은 Lambda 기능 실행 비용에도 큰 영향을 미치기 때문입니다.

위 내용은 GraalVM 네이티브 이미지를 사용한 Lambda 함수 - 콜드 및 웜 스타트를 방지하는 부분의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.