Google Cloud 아키텍처 프레임워크의 이 문서에서는 Compute Engine, Google Kubernetes Engine(GKE), 서버리스 리소스의 성능을 최적화하는 데 도움이 되는 권장사항을 제공합니다.
Compute Engine
이 섹션에서는 Compute Engine 리소스의 성능을 최적화하는 데 도움이 되는 안내를 제공합니다.
리소스 자동 확장
관리형 인스턴스 그룹(MIG)을 사용하면 Compute Engine VM에 배포된 스테이트리스(Stateless) 앱을 효율적으로 확장할 수 있습니다. 자동 확장을 사용하면 부하가 증가해도 앱에서 계속 예측 가능한 성능을 제공할 수 있습니다. MIG에서 Compute Engine VM 그룹은 사용자가 정의한 템플릿을 기반으로 시작됩니다. 인스턴스 그룹 구성에서 자동 확장 처리가 그룹을 확장하는 데 사용하는 신호 하나 이상을 지정하는 자동 확장 정책을 구성합니다. 자동 확장 신호는 시작 시간 또는 기간과 같이 일정을 기준으로 하거나 평균 CPU 사용률과 같은 목표 측정항목을 기반으로 합니다. 자세한 내용은 인스턴스 그룹 자동 확장을 참조하세요.
SMT 중지
Compute Engine VM에 할당하는 각 가상 CPU(vCPU)는 단일 하드웨어 멀티 스레드로 구현됩니다. 기본적으로 2개의 vCPU가 물리적 CPU 코어를 공유합니다. 이 아키텍처를 동시 멀티 스레딩 (SMT)이라고 합니다.
병렬이거나 부동 소수점 계산을 수행하는 워크로드(예: 트랜스코딩, Monte Carlo 시뮬레이션, 유전 서열 분석, 금융 리스크 모델링)의 경우 SMT를 중지하면 성능을 개선할 수 있습니다. 자세한 내용은 코어당 스레드 수 설정을 참조하세요.
GPU 사용
머신러닝 및 시각화와 같은 워크로드의 경우 VM에 그래픽 처리 장치(GPU)를 추가할 수 있습니다. Compute Engine은 패스 스루 모드의 NVIDIA GPU를 제공하여 VM이 GPU 및 관련 메모리를 직접 제어할 수 있도록 합니다. 3D 시각화와 같은 그래픽 집약적인 워크로드의 경우 NVIDIA RTX 가상 워크스테이션을 사용할 수 있습니다. 워크로드를 배포한 후 GPU 사용량을 모니터링하고 GPU 성능 최적화 옵션을 검토합니다.
컴퓨팅 최적화 머신 유형 사용
게임, 미디어 트랜스코딩, 고성능 컴퓨팅(HPC)과 같은 워크로드는 높은 CPU 코어당 성능을 지속적으로 요구합니다. 이러한 워크로드를 실행하는 VM의 경우 컴퓨팅 최적화 머신 유형을 사용하는 것이 좋습니다. 컴퓨팅 최적화 VM은 최적의 신뢰할 수 있는 성능을 위해 비균일 메모리 액세스(NUMA)와 같은 기능을 사용하는 아키텍처를 기반으로 합니다.
긴밀하게 결합된 HPC 워크로드에는 최고의 성능 효율성을 달성하는 데 필요한 고유한 요구사항이 있습니다. 자세한 내용은 다음 문서를 참조하세요.
적합한 스토리지 선택
Google Cloud는 영구 디스크, 로컬 솔리드 스테이트 드라이브(SSD) 디스크, Filestore, Cloud Storage 등 다양한 Compute Engine VM용 스토리지 옵션을 제공합니다. 이러한 각 스토리지 옵션의 성능을 최적화하기 위한 설계 권장사항은 스토리지 성능 최적화를 참조하세요.
Google Kubernetes Engine
이 섹션에서는 Google Kubernetes Engine(GKE) 리소스의 성능을 최적화하는 데 도움이 되는 안내를 제공합니다.
리소스 자동 확장
클러스터 자동 확장 처리 기능을 사용하여 현재 로드와 일치하도록 GKE 클러스터에서 노드 풀 크기를 자동으로 조정할 수 있습니다. 자동 확장을 사용하면 부하가 증가해도 앱에서 계속 예측 가능한 성능을 제공할 수 있습니다. 클러스터 자동 확장 처리는 실제 리소스 사용률 대신 노드에서 실행되는 포드의 리소스 요청에 따라 자동으로 노드 풀의 크기를 조절합니다. 자동 확장을 사용하는 경우 성능과 비용 간에 절충될 수 있습니다. 클러스터 자동 확장을 효율적으로 구성하기 위한 권장사항을 검토합니다.
C2D VM 사용
C2D 머신 유형을 사용하여 컴퓨팅 집약적인 컨테이너화된 워크로드 성능을 향상시킬 수 있습니다. 노드 풀에서 C2D 머신 유형을 선택하여 GKE 클러스터에 C2D 노드를 추가할 수 있습니다.
SMT 중지
동시 멀티 스레딩(SMT)을 사용하면 일반 컴퓨팅 태스크와 높은 I/O가 필요한 워크로드의 애플리케이션 처리량을 크게 늘릴 수 있습니다. 하지만 두 가상 코어 모두의 컴퓨팅이 제약되는 워크로드의 경우 SMT로 인해 성능의 일관성이 저하될 수 있습니다. 보다 우수하고 예측 가능한 성능을 얻으려면 코어당 vCPU 수를 1로 설정하여 GKE 노드의 SMT를 중지하면 됩니다.
GPU 사용
영상 인식 및 동영상 트랜스코딩과 같은 컴퓨팅 집약적인 워크로드의 경우 GPU를 사용하는 노드 풀을 만들어 성능을 가속화할 수 있습니다. 자세한 내용은 GPU 실행을 참조하세요.
컨테이너 기반 부하 분산 사용
컨테이너 기반 부하 분산을 사용하면 부하 분산기에서 트래픽을 포드에 직접 균일하게 분산할 수 있습니다. 이 접근 방식은 향상된 네트워크 성능과 부하 분산기 및 포드 간 네트워크 지연 시간에 대한 개선된 가시성을 제공합니다. 이러한 이점에 따라 컨테이너 기반 부하 분산이 인그레스를 통한 부하 분산에 권장되는 솔루션입니다.
압축 배치 정책 정의
밀접하게 결합된 일괄 워크로드에는 GKE 노드 풀의 노드 간 네트워크 지연 시간이 짧아야 합니다. 이러한 워크로드를 단일 영역 노드 풀에 배포하고 압축 배치 정책을 정의하여 노드가 물리적으로 서로 가까이 있도록 할 수 있습니다. 자세한 내용은 GKE 노드를 위한 압축 배치 정의를 참조하세요.
서버리스 컴퓨팅 서비스
이 섹션에서는 Google Cloud에서 서버리스 컴퓨팅 서비스(Cloud Run 및 Cloud Functions)의 성능을 최적화하는 데 도움이 되는 안내를 제공합니다. 이러한 서비스는 자동 확장 기능을 제공하며 기본 인프라에서 자동으로 확장을 처리합니다. 이러한 서버리스 서비스를 사용하면 마이크로서비스 및 함수를 확장하기 위한 작업을 줄이고 애플리케이션 수준에서 성능을 최적화하는 데 집중할 수 있습니다.
자세한 내용은 다음 문서를 참조하세요.
다음 단계
스토리지, 네트워킹, 데이터베이스, 분석 리소스의 성능을 최적화하기 위한 권장사항을 검토합니다.