이 문서에서는 Azure Red Hat OpenShift에서 OpenShift Virtualization을 사용하여 VM(가상 머신)을 배포할 때 성능 및 비용 효율성을 최적화하기 위한 지침을 제공합니다. 또한 이 지침은 애플리케이션 성능과 관련된 문제를 해결하고 성공적인 배포를 위한 실행 가능한 단계를 제공합니다.
최적화 방법
비고
GPU 종속 워크로드는 현재 Azure의 OpenShift Virtualization에서 지원되지 않습니다. 그에 따라 배포를 계획합니다.
VM 배포 최적화는 애플리케이션 워크로드를 이해하고 그에 따라 인프라 선택을 조정하는 것부터 시작합니다. 클러스터의 작업자 노드인 Azure Boost 머신에서 OpenShift Virtualization 배포는 네이티브 VM 또는 Pod 배포에 비해 아키텍처 오버헤드를 도입합니다. 용량 및 성능에 대한 계획은 이 오버헤드를 고려해야 합니다.
워크로드 식별
VM을 프로비전하기 전에 워크로드를 분류하여 성능 및 리소스 요구 사항을 결정합니다. 일반적인 워크로드 유형은 다음과 같습니다.
- 범용: 웹 서버, 애플리케이션 서버, 콘텐츠 관리 시스템.
- 데이터베이스: 일관된 IOPS 및 메모리가 필요한 관계형 및 NoSQL 데이터베이스입니다.
- 실시간 분석: 짧은 대기 시간 데이터 처리, 운영 대시보드.
- AI/ML: 높은 CPU/GPU 및 메모리가 필요한 계산 집약적 워크로드.
- 데이터 스트리밍 및 메시징: 처리량이 높고 대기 시간이 짧은 이벤트 기반 아키텍처입니다.
- 일괄 처리: 대규모 데이터 볼륨을 처리하는 주기적 또는 주문형 작업입니다.
- HPC(고성능 컴퓨팅): 과학적 시뮬레이션, 재무 모델링.
- Edge 및 IoT: 분산 센서의 데이터 집계 및 처리
- 미디어 처리: 비디오 인코딩/디코딩, 이미지 변환, 스트리밍.
- 개발/테스트 환경: 개발 및 테스트를 위한 임시 환경입니다.
각 워크로드 유형에는 VM 크기 조정, 스토리지 구성 및 성능 튜닝 전략에 영향을 주는 고유한 특성이 있습니다.
애플리케이션 워크로드의 올바른 크기 조정
올바른 크기 조정에 대한 주요 고려 사항
- 최소 코어 요구 사항: OpenShift 가상화에는 OpenShift 작업자 노드에 대해 최소 8개의 코어 Azure VM이 필요합니다.
- 아키텍처 오버헤드: 성능은 인스턴스 유형, 스토리지 및 네트워크 특성을 포함하여 환경을 구성하는 동안 수행되는 아키텍처 결정에 따라 달라질 수 있습니다.
- 규모 확장: 까다로운 워크로드의 경우 노드를 더 추가하여 Azure Red Hat OpenShift 클러스터를 확장하면 리소스 경합을 극복하고 처리량을 유지하는 데 도움이 될 수 있습니다.
- 워크로드를 벤치마킹합니다. 온-프레미스 크기 조정 참조에만 의존하지 마십시오. 사용자 고유의 워크로드를 벤치마킹하여 올바른 크기 조정을 알릴 수 있습니다.
- 비용 요소: Azure 컴퓨팅 비용, OpenShift 라이선스, VM 라이선스 및 확장성 요구 사항을 고려합니다.
적절한 크기 조정을 통해 VM이 과잉 프로비전 없이 성능 목표를 충족할 수 있는 적절한 리소스로 프로비전됩니다. 이 프로세스는 리소스 효율성이 비용과 성능에 직접적인 영향을 미치는 클라우드 환경에서 매우 중요합니다.
워크로드 크기를 조정하는 단계
상태 메트릭 정의
- CPU 사용률: 평균 사용량% 60~70을 대상으로 합니다.
- 메모리 압력: 스왑 사용량, 메모리 채도 및 페이지 오류를 모니터링합니다.
- IO 변형: 디스크 대기 시간, 처리량 및 큐 깊이를 측정합니다.
모니터링 설정
- 실시간 메트릭 수집 및 시각화에 Prometheus 및 Grafana를 사용합니다.
- VM 수준 인사이트에 KubeVirt 메트릭을 사용하도록 설정합니다.
- Azure Arc를 통해 Azure Monitor와 통합하여 인프라 수준 메트릭과 애플리케이션 성능의 상관 관계를 지정합니다.
기록 데이터 분석
- 시간에 따른 성능 추세를 검토합니다.
- 최대 사용 기간 및 리소스 포화 이벤트를 식별합니다.
- 기록 기준을 사용하여 향후 자동 크기 조정 결정을 안내합니다.
VM 사양 조정
- 관찰된 메트릭에 따라 Dsv5 또는 Dsv6 시리즈에서 적절한 VM 크기를 선택합니다.
- CPU, 메모리, 디스크 IOPS 및 네트워크 처리량 요구 사항을 고려합니다.
- 리소스를 실제 사용 패턴에 맞게 조정하여 과잉 프로비전을 방지합니다.
- 적절한 크기 조정에 대한 Red Hat 지침 검토 - OpenShift 가상화를 위한 적절한 크기 조정 발표 | Red Hat 개발자.
테스트 및 유효성 검사
- Apache JMeter, Locust 또는 stress-ng와 같은 도구를 사용하여 부하 테스트를 수행합니다.
- 정의된 상태 메트릭 및 성능 대상에 대해 유효성을 검사합니다.
- 구성 변경 내용을 반복하고 다시 테스트하여 개선 사항을 확인합니다.
환경 미세 조정
특히 까다로운 워크로드의 경우 최적의 성능을 달성하려면 OpenShift 가상화 환경을 미세 조정해야 합니다. 다음 모범 사례는 Azure Boost VM 시리즈(Dsv5/Dsv6)의 광범위한 벤치마킹 및 실제 환경에서 파생됩니다.
성능 최적화 전략
- 까다로운 워크로드를 확장하거나 업그레이드합니다. 높은 동시성 또는 리소스 집약적 애플리케이션을 위해 노드를 추가하거나 업사이즈하여 Azure Red Hat OpenShift 클러스터를 확장합니다.
- 엄격한 리소스 제한을 피합니다. VM에 대한 게스트 메모리만 설정합니다. 거버넌스에 필요하지 않은 한 엄격한 리소스 제한을 피합니다.
- 스토리지 및 네트워크 구성 튜닝: 워크로드 요구 사항과 일치하는 스토리지 솔루션 및 성능 계층을 선택합니다. 네트워크 집약적 워크로드의 경우 NAPI 및 다중 큐와 같은 설정을 조정하고 처리량 및 대기 시간을 모니터링합니다.
- 정기적으로 모니터링 및 벤치마킹: Prometheus, Grafana 및 Azure Monitor를 사용하여 주요 메트릭을 추적합니다. 사용자 고유의 워크로드를 벤치마킹하여 성능의 유효성을 검사하고 추가 튜닝을 안내합니다.
- 아키텍처 오버헤드를 예상합니다. 특히 I/O 또는 네트워크 요구가 높은 워크로드의 경우 용량을 계획하고 그에 따라 기대치를 설정합니다.
VM 오버 커밋 튜닝
OpenShift Virtualization 연산자를 사용하면 CPU 및 메모리 초과 커밋 비율을 조정할 수 있으므로 실제로 사용할 수 있는 것보다 더 많은 가상 리소스를 할당할 수 있습니다. 이러한 변경은 밀도 및 리소스 사용률을 향상시킬 수 있지만 경합을 증가시키고 성능에 영향을 줄 수 있습니다.
오버 커밋 튜닝에 대한 모범 사례:
- 프로덕션 워크로드에 대해 보수적인 초과 커밋을 사용합니다.
- 개발/테스트 환경에 대해 더 높은 오버 커밋을 고려합니다.
- 리소스 사용량을 모니터링하고 필요에 따라 비율을 조정합니다.
자세한 내용은 더 높은 VM 워크로드 밀도 구성을 참조하세요.
벤치마킹 기반 모범 사례
- 데이터베이스 워크로드: VM에 대한 리소스 요청 및 제한을 둘 다 설정하지 않습니다. 빠른 스토리지 및 높은 동시성을 사용하는 경우 성능을 면밀히 모니터링합니다. 대규모 데이터베이스 배포를 위해 클러스터 노드를 스케일 아웃합니다.
- 네트워크 워크로드: 최적의 처리량을 위해 네트워크 설정을 조정합니다. 필요에 따라 확장하여 원하는 네트워크 처리량을 달성합니다.
스토리지 솔루션 튜닝
- ODF(OpenShift Data Foundation): 짧은 대기 시간 액세스를 위해 SSD 지원 스토리지를 사용합니다. 워크로드 요구 사항에 따라 복제 및 지우기 코딩 정책을 구성합니다. 애플리케이션 컴퓨팅 리소스에 대한 경쟁을 방지하려면 더 작은 Azure VM 크기로 ODF에 대한 별도의 작업자 풀을 만드는 것이 좋습니다. Ds16v5는 좋은 출발점이며, taints/tolerations를 사용하여 ODF가 예약된 유일한 워크로드인지 확인합니다. 스토리지 성능을 모니터링하고 필요에 따라 복제 요소를 조정합니다.
- ANF(Azure NetApp Files): IOPS 및 처리량 요구 사항에 따라 성능 계층을 선택합니다. 최적의 성능을 위해 적절한 탑재 옵션 및 네트워크 구성을 보장합니다. 볼륨 스냅샷 및 백업을 사용하여 데이터 보호 및 복구 전략을 지원합니다.