"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Docker 컨테이너 이미지를 사용하는 Lambda 함수 - Java를 사용하여 Lambda 함수의 콜드 및 웜 스타트를 측정하는 부분( 런타임

Docker 컨테이너 이미지를 사용하는 Lambda 함수 - Java를 사용하여 Lambda 함수의 콜드 및 웜 스타트를 측정하는 부분( 런타임

2024-11-03에 게시됨
검색:717

Lambda function using Docker Container Image -Part easuring cold and warm starts of Lambda function with Java ( runtime

소개

소규모 시리즈의 첫 번째 기사에서는 Docker 컨테이너 이미지와 Java 런타임을 사용하여 Lambda 기능을 개발하고 배포하는 방법을 살펴보았습니다. 우리는 2가지 사용 사례를 살펴보았습니다:

  • AWS Lambda 기본 Docker 컨테이너 이미지
  • AWS OS 전용 기본 이미지

이 문서에서는 AWS Lambda 기반 Docker 컨테이너 이미지 접근 방식을 사용하여 Lambda 함수의 콜드 및 웜 시작을 측정합니다.

AWS Lambda 기본 Docker 컨테이너 이미지 및 Java(21) 런타임을 사용하여 Lambda 함수의 콜드 및 웜 스타트 측정

측정을 위해 첫 번째 부분의 샘플 애플리케이션을 사용하고 Lambda 함수에 Java 21 런타임을 사용합니다. 모든 Lambda 함수에 대해 1024MB 메모리를 제공하고 JAVA_TOOL_OPTIONS: "-XX: TieredCompilation -XX:TieredStopAtLevel=1"을 사용합니다. 이 컴파일 옵션은 콜드 시작 시간과 웜 시작 시간 간의 매우 좋은 교환을 제공합니다.

아래 실험 결과는 제품 검색을 담당하는 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 최대 50페이지 p75 p90 w p99 w p99.9 최대값
3093.26 3219.44 3314.12 4632.16 6513.35 6517.71 5.47 6.20 7.39 17.14 43.03 1386.07

결론

이 기사에서는 AWS Lambda 기반 Docker 컨테이너 이미지 접근 방식을 사용하여 Lambda 함수의 콜드 및 웜 시작 시간을 측정했습니다. 우리는 1024MB 메모리와 Lambda Java 21 관리형 런타임을 갖춘 Lambda에 대해 다양한 Lambda 메모리 설정을 사용하여 Java 21에서 콜드 및 웜 스타트를 측정하는 것과 비교할 때 상당히 중요한 콜드 스타트와 상당히 경쟁적인 웜 스타트 시간을 경험했습니다.

콜드 스타트 ​​시간을 대폭 단축하는 AWS Lambda SnapStart는 현재 Java Corretto 관리 런타임(11, 17 및 21)에서만 사용할 수 있으며 Docker 컨테이너 이미지에서는 사용할 수 없습니다. jlink 도구를 탐색하여 모듈 세트와 해당 종속성을 더 작은 사용자 정의 런타임 이미지 및 클래스 데이터 공유(CDS)로 어셈블하고 최적화할 수 있습니다. 이는 Java 프로그래밍 언어 애플리케이션, 특히 더 작은 애플리케이션의 시작 시간을 줄이는 데 도움이 됩니다. 발자국을 줄입니다. Docker 이미지를 Java용 배포 아티팩트로 사용하면 Java 22(Java 23은 2024년 9월 출시 예정)와 같은 최신 Java 런타임을 사용할 수 있다는 이점이 있습니다.

릴리스 선언문 이 기사는 https://dev.to/aws-builders/lambda-function-using-docker-container-image-part-2-measuring-cold-and-warm-starts-of-lambda-function-에서 재현됩니다. with- java-21-runtime-mof?1침해 내용이 있는 경우, [email protected]으로 연락하여 삭제해 주시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3