제퍼넷 로고

Amazon EMR Serverless에서 AWS Graviton27를 사용하여 Spark 워크로드에 대해 최대 2% 향상된 가격 대비 성능 달성

시간

Amazon EMR 서버리스 의 서버리스 옵션입니다. 아마존 EMR 클러스터를 구성, 관리 또는 확장하지 않고도 Apache Spark 및 Hive와 같은 오픈 소스 분석 프레임워크를 사용하여 애플리케이션을 간단하게 실행할 수 있습니다.

AWS re:Invent 2022에서 서버리스 Spark 및 Hive 워크로드 실행 지원을 발표했습니다. AWS 그래비톤2 (암64)에 Amazon EMR 서버리스. AWS Graviton2 프로세서는 64비트 Arm Neoverse 코어를 사용하여 AWS에서 맞춤형으로 구축하여 클라우드 워크로드의 가격 대비 성능을 크게 향상시킵니다.

이 게시물에서는 EMR Serverless에서 AWS Graviton2를 사용하여 Apache Spark 작업을 실행하는 동안 관찰된 성능 향상에 대해 설명합니다. EMR Serverless의 Graviton2는 런타임을 기반으로 Spark 워크로드에 대해 10%의 성능 향상을 달성했습니다. AWS Graviton2는 x20 아키텍처 옵션보다 86% 저렴한 비용으로 제공됩니다( Amazon EMR 요금 페이지 자세한 내용은 참조) 워크로드에 대해 전반적으로 27% 더 나은 가격 대비 성능을 제공합니다.

스파크 성능 테스트 결과

다음 차트는 EMR Serverless Spark 애플리케이션에 대해 Graviton2가 있는 경우와 없는 경우의 벤치마크 런타임을 비교합니다(차트는 크기에 맞게 그려지지 않음). x10에 비해 쿼리의 총 실행 시간이 최대 8% 향상되고 기하 평균이 86% 향상되는 것을 관찰했습니다.

다음 표에 결과가 요약되어 있습니다.

메트릭 그 라비 톤 2 x86 %얻다
총 실행 시간(초) 2,670 2,959 10%
기하 평균(초) 22.06 24.07 8%

테스트 구성

성능 향상을 평가하기 위해 TPC-DS 3TB 규모 성능 벤치마크에서 파생된 벤치마크 테스트를 사용합니다. 벤치마크는 104개의 쿼리로 구성되며 각 쿼리는 EMR 서버리스 애플리케이션에 순차적으로 제출됩니다. EMR 서버리스에는 자동 및 세분화된 조정이 기본적으로 활성화되어 있습니다. Spark는 DRA(Dynamic Resource Allocation)를 제공하여 워크로드에 따라 애플리케이션 리소스를 동적으로 조정하고 EMR Serverless는 DRA의 신호를 사용하여 필요에 따라 작업자를 탄력적으로 확장합니다. 테스트를 위해 미리 정의된 사전 초기화 용량 애플리케이션이 기본 제한으로 확장할 수 있도록 합니다. 각 애플리케이션에는 사전 초기화된 용량으로 구성된 드라이버 1개와 작업자 100개가 있어 최대 8000 vCPU/60000GB 용량으로 확장할 수 있습니다. 애플리케이션을 시작할 때 기본적으로 x86_64를 사용하여 기본 수치를 가져오고 AWS Graviton64용 Arm2를 사용하며 애플리케이션에서 VPC 네트워킹이 활성화되었습니다.

다음 표에는 Spark 애플리케이션 구성이 요약되어 있습니다.

드라이버 수 운전사 크기 실행자 수 실행자 크기 임시 스토리지 Amazon EMR 릴리스 레이블
1 vCPU 4개, 16GB 메모리 100 vCPU 4개, 16GB 메모리 200 G 6.9

성능 테스트 결과 및 비용 비교

벤치마크 테스트의 비용 비교를 해보자. 각 실행에 대해 드라이버 1개[vCPU 4개, 메모리 16GB]와 실행기 100개[vCPU 4개, 메모리 16GB]를 사용했기 때문에 사용된 총 용량은 4*101=192 vCPU, 16*101=1616GB 메모리, 200*입니다. 100=20000GB 스토리지. 다음 표에는 비용이 요약되어 있습니다.

Test 총 시간(초) vCPU 메모리 (GB) 임시(스토리지 GB) 비용
x86_64 2,958.82 404 1616 18000 $26.73
그 라비 톤 2 2,670.38 404 1616 18000 $19.59

계산은 다음과 같습니다.

  • 총 vCPU 비용 = (vCPU 수 * vCPU 속도당 * 작업 실행 시간(시간))
  • 총 GB = (구성된 총 메모리 GB * GB-시간당 비율 * 작업 런타임(시간))
  • 스토리지 = 기본적으로 모든 작업자가 20GB의 임시 스토리지를 사용할 수 있습니다. 작업자별로 구성한 추가 스토리지에 대해서만 비용을 지불하면 됩니다.

원가 분석

x86의 비용 내역을 살펴보겠습니다.

  • 작업 런타임 – 49.3분 = 0.82시간
  • 총 vCPU 비용 – 404 vCPU x 0.82시간 작업 런타임 x vCPU당 0.052624 USD = 17.4333 USD
  • 총 GB 비용 – 1,616 메모리-GB x 0.82시간 작업 런타임 x 메모리 GB당 0.0057785 USD = 7.6572 USD
  • 보관 비용 – 18,000 스토리지 GB x 0.82시간 작업 런타임 x 스토리지 GB당 0.000111 USD = 1.6386 USD
  • 추가 저장 용량 – 20,000GB – 20GB 프리 티어 * 100명의 작업자 = 18,000 추가 스토리지 GB
  • EMR 서버리스 총 비용(x86): 17.4333달러 + 7.6572달러 + 1.6386달러 = 26.7291 불

Graviton 2의 비용 분석과 비교해 보겠습니다.

  • 작업 런타임 – 44.5분 = 0.74시간
  • 총 vCPU 비용 – 404 vCPU x 0.74시간 작업 런타임 x vCPU당 0.042094 USD = 12.5844 USD
  • 총 GB 비용 – 1,616 메모리-GB x 0.74시간 작업 런타임 x 메모리 GB당 0.004628 USD = 5.5343 USD
  • 보관 비용 – 18,000 스토리지 GB x 0.74시간 작업 런타임 x 스토리지 GB당 0.000111 USD = 1.4785 USD
  • 추가 저장 용량 – 20,000GB – 20GB 프리 티어 * 100명의 작업자 = 18,000 추가 스토리지 GB
  • EMR 서버리스 총 비용(Graviton2): 12.5844달러 + 5.5343달러 + 1.4785달러 = 19.5972 달러

테스트 결과 벤치마크 실행의 경우 AWS Graviton2가 전체 비용을 27% 절감하는 것으로 나타났습니다.

개별 쿼리 개선 및 관찰

다음 차트는 x2과 비교하여 Graviton86를 사용한 개별 쿼리의 상대적 속도 향상을 보여줍니다.

전체 벤치마크 실행 시간에 거의 영향을 미치지 않는 몇 가지 짧은 쿼리에서 약간의 회귀를 볼 수 있습니다. 장기 실행 쿼리의 성능 향상이 관찰되었습니다. 예를 들면 다음과 같습니다.

  • q67은 x86의 경우 평균 86초, Graviton74의 경우 2초(24% 런타임 성능 향상)
  • q23a 및 q23b는 각각 14% 및 16% 증가했습니다.
  • q32 7% 회귀; 평균 실행 시간의 차이는 500밀리초 미만입니다(Graviton11.09의 경우 2초와 x10.39의 경우 86초).

성능을 정량화하기 위해 TPC-DS 3TB 규모 성능 벤치마크에서 파생된 벤치마크 SQL을 사용합니다.

워크로드를 EMR 서버리스의 Graviton2 아키텍처로 마이그레이션하는 것을 평가하는 경우 실제 사용 사례를 기반으로 Spark 워크로드를 테스트하는 것이 좋습니다. 에 따라 결과가 달라질 수 있습니다. 사전 초기화 용량 그리고 선택된 노동자의 수. 여러 프로세서 아키텍처에서 워크로드를 실행하려는 경우(예: x86 및 Arm vCPU에서 성능 테스트)의 연습을 따르십시오. GitHub 레포 몇 가지 구체적인 아이디어로 시작합니다.

결론

이 게시물에서 설명한 것처럼 EMR 서버리스 애플리케이션의 Graviton2는 Spark 워크로드에 대해 지속적으로 더 나은 성능을 제공했습니다. Graviton2는 EMR 서버리스를 사용할 수 있는 모든 리전에서 사용할 수 있습니다. EMR 서버리스를 사용할 수 있는 리전 목록을 보려면 다음을 참조하십시오. EMR 서버리스 FAQ. 자세히 알아보려면 다음을 방문하세요. Amazon EMR 서버리스 사용 설명서샘플 코드 Apache Spark 및 Apache Hive와 함께.

사용 사례로 얼마나 많은 성능 향상을 달성할 수 있는지 궁금하다면 이 게시물에 설명된 단계를 시도하고 쿼리로 바꾸십시오.

EMR 서버리스에서 Graviton2 기반 아키텍처를 사용하여 첫 번째 Spark 또는 Hive 애플리케이션을 시작하려면 다음을 참조하십시오. Amazon EMR 서버리스 시작하기.


저자 소개

카르티크 프라바카르 AWS에서 Amazon EMR의 선임 빅 데이터 솔루션 아키텍트입니다. 그는 데이터 여정의 성공을 지원하기 위해 AWS 고객과 함께 모범 사례 및 기술 조언을 제공하는 숙련된 분석 엔지니어입니다.

니티시 쿠마르 무르첼라 Amazon EMR Serverless 팀의 선임 시스템 개발 엔지니어입니다. 그는 분산 컴퓨팅, 컨테이너 및 데이터에 관한 모든 것에 열정적입니다.

spot_img

VC 카페

라이프사이VC

최신 인텔리전스

아카데믹 VC

VC 카페

spot_img