자체 호스팅형 PoP 의 용량 계획 및 확장

자체 호스팅형 Synthetic PoP 배포 환경의 용량을 계획하고, 증가하는 워크로드를 지원하기 위해 PoP 을 확장하십시오. PoP 의 규모와 리소스는 합성 테스트 수, 테스트 실행 빈도, 테스트 스크립트의 복잡도 등 워크로드에 따라 달라집니다.

용량 산정

적절한 용량 계획은 최소의 비용으로 더 나은 성능과 안정성을 보장합니다. Instana 이 문서는 통제된 환경에서 수행된 표준 IBM 벤치마크의 측정 결과 및 예측치를 바탕으로, 다양한 PoP 규모와 리소스 할당에 대한 지침을 제공합니다. 실제 처리량이나 성능은 여러 요인에 따라 달라집니다. PoP 의 성능을 향상시키려면 다음 단계를 따르세요:

  • 작업량과 PoP 의 크기 추정을 바탕으로 충분한 리소스 할당을 계획하십시오.
  • 프로덕션 환경에서 Instana 에이전트를 사용하여 PoP 의 상태 모니터링하기.
  • 증가하는 워크로드를 지원하기 위해 필요에 따라 특정 재생 엔진을 확장할 수 있습니다.

Synthetic PoP, 에 대한 기본 CPU 및 메모리 리소스 할당을 사용하는 경우, Kubernetes 클러스터의 물리적 리소스에 최소 6코어 CPU와 4.8 GB의 메모리가 확보되어 있는지 확인하십시오. 그러면 다음 테스트 구성으로 수행된 성능 벤치마크 테스트 결과를 기준으로, 2000건의 API 단순 테스트, 100건의 API 스크립트 테스트, 15건의 브라우저 스크립트 테스트, 그리고 2000건의 ISM 테스트( SSL / DNS )를 실행할 수 있습니다

검정 유형 빈도 지속 기간 복잡도 테스트 수
API 단순 테스트 1분 ~200ms 2000년
API 스크립트 테스트 5분 ~800ms HTTP 호출 5회 실행 100년
브라우저 스크립트 테스트 15분 ~20초 두 개의 웹 페이지 열기 15
SSL 테스트 1분 240ms (~240) 2000년
DNS 테스트 1분 240ms (~240) 2000년

PoP 를 모니터링하기 위해 Instana 에이전트를 설치하거나, 성능 향상을 위해 PoP 를 확장하려면 Kubernetes 클러스터에 더 많은 물리적 리소스가 확보되어 있어야 합니다.

PoP 크기 및 자원 할당의 예상은 각 컴포넌트의 기본 구성에서 자원 요청 및 한계를 사용하여 표에 표시된 대로 일정한 합성 테스트 및 테스트 빈도로 테스트하여 수행됩니다. Synthetic PoP 구성 요소의 기본 설정에 대한 자세한 내용은 PoPhelm charts를 참조하십시오. 마찬가지로, Instana 에이전트 및 Kubernetes ( K8 ) 센서의 기본 구성에 대한 정보는 에이전트 helm 차트를 참조하십시오. 재생 엔진 복제본의 수는 테스트 수 및 실행 빈도를 기반으로 계산됩니다. Instana 에이전트의 수는 Kubernetes 의 워커 노드 수를 기준으로 계산됩니다. 기본 설정에서 ‘ Kubernetes ’ 센서의 수는 3개로 설정되어 있습니다. Kubernetes 센서 3개를 사용하면 최대 400개의 노드를 모니터링할 수 있습니다.

디스크 공간 요구사항

다음 표에는 초기 배포 시 PoP 의 각 크기별 최소 디스크 공간 요구 사항이 나와 있습니다. 이러한 요구 사항은 워커 노드별로 명시되며, K3s 설치, Helm 설치, 컨테이너 이미지 저장소 및 핵심 Synthetic PoP 구성 요소 데이터를 포함합니다.

기본 구성 PoP (CPU: 300m, 메모리: 300Mi )의 경우, 실제로 측정된 디스크 사용량은 다음과 같습니다:

  • K3s 설치 용량: 약 1GB
  • Helm 설치 용량: 약 1GB
  • PoP 의 합성 포드(모든 컨테이너): 약 7GB
  • 총 용량: 약 9GB
PoP 크기 노드당 최소 디스크 공간 작업자 노드 필요한 최소 디스크 공간 사용법 세부사항
xsmall 50GB 1 50GB K3s (~1 GB), Helm (~1 GB), PoP 컨테이너 (~7 GB), 버퍼 (~41 GB)
소형 100GB 3 300GB K3s 노드당 (~1 GB), Helm (~1 GB), PoP 컨테이너 (~20 GB), 버퍼 (~78 GB)
중간 200GB 3 600GB K3s 노드당 (~1 GB), Helm (~1 GB), PoP 컨테이너 (~40 GB), 버퍼 (~158 GB)
대형 400GB 6 2.4TB K3s 노드당 (~1 GB), Helm (~1 GB), PoP 컨테이너 (~80 GB), 버퍼 (~318 GB)
참고: 이 수치는 인프라 조달 계획을 수립하기 위한 기준치입니다. 기본 구성 PoP 의 실제 디스크 사용량은 약 9GB이며, 여기에는 K3s, Helm 및 모든 Synthetic PoP 컨테이너가 포함됩니다. 실제 디스크 사용량은 테스트 실행 빈도, 로그 양, 모니터링 대상 수 및 보존 정책에 따라 증가합니다. 버퍼 공간은 로그 파일, 임시 데이터 및 시스템 오버헤드를 수용합니다. 최적의 성능을 유지하기 위해 디스크 사용량을 정기적으로 모니터링하고, 사용량이 70%를 초과할 경우 용량을 확장하십시오.

XSmall 설치 - PoP 기능 테스트

XSmall 설치는 테스트 또는 데모 용도로 지원됩니다. 기본 구성을 사용할 경우, Kubernetes 클러스터의 물리적 리소스에 6코어 CPU와 4.8 GB 메모리가 할당되어 있다면, 일정한 테스트 구성으로 수행된 성능 벤치마크 테스트 결과를 바탕으로 API 단순 테스트 10개, API 스크립트 테스트 5개, 브라우저 스크립트 테스트 1개, ISM 테스트( SSL / DNS ) 10개를 실행할 수 있습니다.

Instana 에이전트를 사용하여 Synthetic PoP 을 모니터링하려면, Kubernetes 클러스터가 다음의 최소 요구 사항을 충족하는지 확인하십시오:

자원 요구사항
작업자 노드 1
CPU 8개 코어
메모리 7.1 GB
디스크 공간 노드당 50GB

PoP Controller, Redis 및 재생 엔진을 포함하여, 워커 노드 1개를 갖춘 XSmall PoP 배포 아키텍처를 보여주는 다이어그램

소규모 설치 - 제작

소규모 설치는 프로덕션을 위한 것입니다. 기본 구성을 사용할 경우, Kubernetes 클러스터의 물리적 리소스에 6코어 CPU와 4.8 GB 메모리가 할당되어 있다면, 일정한 테스트 구성으로 수행된 성능 벤치마크 테스트 결과를 바탕으로 API 단순 테스트 2,000회, API 스크립트 테스트 20회, 브라우저 스크립트 테스트 5회, 그리고 ISM 테스트( SSL / DNS ) 2,000회를 실행할 수 있습니다.

Instana 에이전트를 사용하여 Synthetic PoP 을 모니터링하려면, Kubernetes 클러스터가 다음의 최소 요구 사항을 충족하는지 확인하십시오:

자원 요구사항
작업자 노드 3
CPU 12 코어
메모리 11.7 GB
디스크 공간 노드당 100GB

3개의 워커 노드로 구성된 Small PoP 배포 아키텍처 다이어그램. 여기에는 노드 간에 분산된 PoP Controller, Redis 및 재생 엔진이 포함됩니다

중형 설치 작품 - 제작

중간 설치는 프로덕션용입니다. 이러한 워크로드를 처리하려면 재생 엔진을 수평적으로 확장하고, PoP 컨트롤러 매개변수를 조정하며, CPU 및 메모리 제한을 늘려야 합니다. Kubernetes 클러스터의 물리적 리소스 중 CPU가 최소 28.4-core 개, 메모리가 21.6 GB 이상 확보되어 있다면, 일정한 테스트 구성으로 수행되는 성능 벤치마크 테스트를 기준으로 API 단순 테스트 3,500건, API 스크립트 테스트 250건, 브라우저 스크립트 테스트 80건, ISM( SSL / DNS ) 테스트 3,500건을 실행할 수 있습니다.

Instana 에이전트를 사용하여 Synthetic PoP 을 모니터링하려면, Kubernetes 클러스터가 다음의 최소 요구 사항을 충족하는지 확인하십시오:

자원 요구사항
작업자 노드 3
CPU 34.4 코어
메모리 28.5 GB
디스크 공간 노드당 200GB

확장된 PoP Controller, Redis 및 여러 개의 재생 엔진 복제본을 포함하여 3개의 워커 노드로 구성된 Medium PoP 배포 아키텍처를 보여주는 다이어그램

대규모 설치 - 제작

대규모 설치는 프로덕션을 위한 것입니다. 이러한 작업 부하를 처리하려면 재생 엔진을 수평적으로 확장하고, ‘위치별 성능 튜닝’을 참조하여 CPU 및 메모리 제한을 늘리십시오. Kubernetes 클러스터의 물리적 리소스에 최소 64코어 CPU와 48.5 GB 메모리가 확보되어 있다면, 일정한 테스트 구성으로 수행되는 성능 벤치마크 테스트를 기준으로 7,000건의 API 단순 테스트, 600건의 API 스크립트 테스트, 200건의 브라우저 스크립트 테스트, 그리고 7,000건의 ISM( SSL / DNS ) 테스트를 실행할 수 있습니다.

Instana 에이전트를 사용하여 Synthetic PoP 을 모니터링하려면, Kubernetes 클러스터가 다음의 최소 요구 사항을 충족하는지 확인하십시오:

자원 요구사항
작업자 노드 6
CPU 74.5 코어
메모리 57.7 GB
디스크 공간 노드당 400GB

6개의 워커 노드로 구성된 대규모 PoP 배포 아키텍처를 보여주는 다이어그램으로, 대규모로 확장된 PoP Controller, Redis 및 노드 전반에 분산된 다수의 재생 엔진 복제본을 포함합니다

자동화 도구를 사용하여 PoP 의 용량을 추정하기

Instana PoP 의 용량을 예측하고 용량을 계획하는 데 도움이 되는 자동화 도구인 synctl을 제공합니다. 다음 예제에 표시된 대로 도구를 사용할 수 있습니다.

synctl get pop-size

synctl get size
 

확장

워크로드 증가를 지원하려면 다음과 같이 PoP 컴포넌트를 확장하십시오.

  • 수평 스케일링: 서로 다른 재생 엔진의 복제본 수를 늘리기 위해 더 단순한 접근 방식이 제공됩니다.
  • 수직 스케일링: CPU및 메모리의 requestslimits 수를 늘리십시오.

수평 스케일링

현재 재생 엔진만 수평 확장성을 지원합니다. PoP Controller및 Redis 는 아직 수평적 확장성을 지원하지 않습니다. PoP 워크로드는 주로 재생 엔진 팟 (Pod) 에 있습니다. 특정 유형의 테스트에서 추가 워크로드를 지원하기 위해 values.yaml 파일에서 replicas 수를 늘릴 수 있습니다.

각 테스트 유형별로 단일 재생 엔진 포드에서 지원하는 테스트 수는 다음 표에 나와 있습니다:

검정 유형 빈도 지속 기간 복잡도 테스트 수
API 단순 테스트 1분 ~200ms 2000년
API 스크립트 테스트 5분 ~800ms HTTP 호출 5회 실행 80
브라우저 스크립트 테스트 15분 ~20초 두 개의 웹 페이지 열기 12
ISM 테스트 1분 240ms (~240) 2000년

각 테스트 유형의 총 작업 부하에 따라, 다음 예시와 같이 수평적 확장성을 지원하기 위해 복제 재생 엔진의 수를 조정하십시오:

helm upgrade synthetic-pop \
    --repo https://agents.instana.io/helm  \
    --namespace "<common-namespace>" \
    --set http.replicas=2 \
    --set javascript.replicas=4 \
    --set browserscript.replicas=5 \
    --set ism.replicas=2 \
    synthetic-pop

수직적 확장

JavaScript 재생 엔진 및 BrowserScript 재생 엔진은 자원 집약적이므로 추가 테스트를 지원하기 위해 CPU 또는 메모리의 requestslimits 수를 늘릴 수 있습니다.

예를 들어, JavaScript 재생 엔진에서 CPU의 requestslimits 값을 각각 800m와 1000m( 0.8/1.0 코어)로 설정하면, 앞서 설명한 테스트 구성에서 40개의 API 스크립트를 지원할 수 있습니다.