본문 바로가기
WIKI 기술 지식 베이스

Configuring OpenSearch Benchmark

원문 보기 위키 갱신

출처: 문서

본문

OpenSearch Benchmark 구성

OpenSearch Benchmark 구성 데이터는 ~/.benchmark/benchmark.ini에 저장되며, 이 파일은 OpenSearch Benchmark가 처음 실행될 때 자동으로 생성돼요.

이 파일은 다음 섹션으로 나뉘고, 클러스터의 필요에 따라 각 섹션을 사용자 지정할 수 있어요.

client_options

이 섹션에서는 벤치마크 실행 중 --client-options 커맨드 라인 플래그를 사용해 클라이언트 수준 설정을 사용자 지정하는 방법을 설명해요.

--client-options 플래그를 사용하면 클라이언트별 파라미터를 OpenSearch Benchmark에 전달할 수 있어요. 이 파라미터를 통해 타임아웃, 인증 방식, SSL 설정 같은 저수준 클라이언트 동작을 제어할 수 있어요.

--client-options 플래그는 다음 예시와 같이 쉼표로 구분된 키-값 쌍 목록을 받아들여요:

--client-options=timeout:120,verify_certs:false

--client-options는 다음 설정으로 사용자 지정할 수 있어요.

옵션 타입 설명
timeout Integer 요청 타임아웃 값을 초 단위로 설정해요.
verify_certs Boolean OpenSearch 클러스터에 연결할 때 SSL 인증서를 검증할지 여부를 결정해요.
basic_auth_user String OpenSearch 클러스터 인증에 사용되는 사용자 이름이에요(인증이 활성화된 경우).
basic_auth_password String OpenSearch 클러스터 인증에 사용되는 비밀번호예요(인증이 활성화된 경우).

이 예시는 2분 타임아웃과 인증서 검증 비활성화 상태로 벤치마크를 실행해요:

opensearch-benchmark run \
--target-hosts=https://localhost:9200 \
--pipeline=benchmark-only \
--workload=geonames \
--client-options=timeout:120,verify_certs:false

meta

이 섹션에는 구성 파일에 대한 메타 정보가 담겨 있어요.

파라미터 타입 설명
config.version Integer 구성 파일 형식의 버전이에요. 이 속성은 OpenSearch Benchmark가 관리하므로 변경하면 안 돼요.

system

이 섹션에는 현재 벤치마크 환경에 대한 전역 정보가 담겨 있어요. 이 정보는 OpenSearch Benchmark가 설치된 모든 머신에서 동일해야 해요.

파라미터 타입 설명
env.name String OpenSearch 메트릭 스토어가 구성된 경우 메트릭 문서에서 메타데이터로 사용되는 벤치마크 환경의 이름이에요. 영숫자만 허용돼요. 기본값은 local이에요.
available.cores Integer 사용 가능한 CPU 코어 수를 결정해요. OpenSearch Benchmark는 코어당 하나의 asyncio 이벤트 루프를 생성하고, 이벤트 루프 전반에 걸쳐 클라이언트에 고르게 분배해요. 기본값은 클러스터의 논리 CPU 코어 수예요.
async.debug Boolean OpenSearch Benchmark의 asyncio 이벤트 루프에서 디버그 모드를 활성화해요. 기본값은 false예요.
passenv String 처리를 위해 OpenSearch에 전달해야 하는 환경 변수 이름을 쉼표로 구분한 목록이에요.

node

이 섹션에는 클러스터의 필요에 따라 사용자 지정할 수 있는 노드별 정보가 담겨 있어요.

파라미터 타입 설명
root.dir String 모든 OpenSearch Benchmark 데이터를 저장하는 디렉터리예요. OpenSearch Benchmark는 이 디렉터리와 모든 하위 디렉터리를 관리해요.
src.root.dir String OpenSearch 소스 코드와 OpenSearch 플러그인을 가져오는 디렉터리예요. 소스로부터의 벤치마크에만 관련이 있어요.

source

이 섹션에는 OpenSearch 소스 트리에 대한 자세한 내용이 담겨 있어요.

파라미터 타입 설명
remote.repo.url URL OpenSearch를 체크아웃할 URL이에요. 기본값은 https://github.com/opensearch-project/OpenSearch.git이에요.
opensearch.src.subdir String OpenSearch 소스 트리에서 src.root.dir을 기준으로 하는 상대 로컬 경로예요. 기본값은 OpenSearch예요.
cache Boolean OpenSearch의 내부 소스 아티팩트 캐시를 활성화해요. opensearch*.tar.gz와 모든 플러그인 zip 파일이 여기에 포함돼요. 아티팩트는 Git 리비전을 기준으로 캐시돼요. 기본값은 true예요.
cache.days Integer 아티팩트를 소스 아티팩트 캐시에 보관할 일수예요. 기본값은 7이에요.

benchmarks

이 섹션에는 OpenSearch Benchmark 데이터 디렉터리에서 사용자 지정할 수 있는 설정이 담겨 있어요.

파라미터 타입 설명
local.dataset.cache String 벤치마크 데이터셋이 저장되는 디렉터리예요. 실행하는 벤치마크에 따라 이 디렉터리에는 수백 GB의 데이터가 담길 수 있어요. 기본 경로는 $HOME/.benchmark/benchmarks/data예요.

reporting

이 섹션은 벤치마크 메트릭이 저장되는 방식을 정의해요.

파라미터 타입 설명
datastore.type String in-memory로 설정하면 벤치마크를 실행하는 동안 모든 메트릭이 메모리에 유지돼요. opensearch로 설정하면 대신 모든 메트릭이 영구 메트릭 스토어에 기록되고, 데이터를 추가 분석에 사용할 수 있어요. 기본값은 in-memory예요.
sample.queue.size Function OpenSearch Benchmark의 인메모리 큐에 저장할 수 있는 메트릭 샘플 수예요. 기본값은 2^20이에요.
metrics.request.downsample.factor Integer (기본값: 1): 메트릭 스토어에 서비스 시간과 지연 시간 샘플을 얼마나 저장할지 결정해요. 기본적으로는 모든 값이 저장돼요. 예를 들어 100번째마다 하나의 샘플만 남기고 싶다면 100을 지정하세요. 클라이언트가 많은 벤치마크에서 메트릭 스토어에 과부하가 걸리는 것을 막는 데 유용해요. 기본값은 1이에요.
output.processingtime Boolean true로 설정하면 OpenSearch가 커맨드 라인 보고서에 추가적인 메트릭 처리 시간을 표시해요. 기본값은 false예요.

datastore.type 파라미터

datastore.type이 opensearch로 설정된 경우 다음 리포팅 설정을 사용자 지정할 수 있어요.

파라미터 타입 설명
datastore.host IP address 메트릭 스토어의 호스트 이름이에요. 예를 들면 124.340.200.22예요.
datastore.port Port 메트릭 스토어의 포트 번호예요. 예를 들면 9200이에요.
datastore.secure Boolean false로 설정하면 OpenSearch는 HTTP 연결로 간주해요. true로 설정하면 HTTPS 연결로 간주해요.
datastore.ssl.verification_mode String 기본값인 full로 설정하면 메트릭 스토어의 SSL 인증서를 검사해요. 인증서 검증을 비활성화하려면 이 값을 none으로 설정하세요.
datastore.ssl.certificate_authorities String 인증 기관의 서명 인증서에 대한 로컬 파일 시스템 경로를 결정해요.
datastore.user Username 메트릭 스토어의 사용자 이름을 설정해요
datastore.password String 메트릭 스토어의 비밀번호를 설정해요. 또는 OSB_DATASTORE_PASSWORD 환경 변수를 사용해 이 비밀번호를 구성할 수 있는데, 이렇게 하면 자격 증명을 일반 텍스트 파일에 저장하지 않아도 돼요. 두 곳 모두에서 비밀번호를 정의하는 경우 환경 변수가 구성 파일보다 우선해요.
datastore.probe.cluster_version String 메트릭 스토어 버전의 자동 감지를 활성화해요. 기본값은 true예요.
datastore.number_of_shards Integer opensearch-* 인덱스가 가져야 하는 프라이머리 샤드 수예요. 초기 인덱스 생성 이후 이 설정을 업데이트하면 새로운 opensearch-* 인덱스에만 적용돼요. 기본값은 OpenSearch 정적 인덱스 값이에요.
datastore.number_of_replicas Integer 데이터스토어의 각 프라이머리 샤드가 포함하는 레플리카 수예요. 초기 인덱스 생성 이후 이 설정을 업데이트하면 새로운 opensearch-* 인덱스에만 적용돼

프록시 구성

OpenSearch는 다음을 포함해 필요한 모든 프록시 데이터를 자동으로 다운로드해요:

  • --distribution-version=<OPENSEARCH-VERSION>을 지정하면 OpenSearch 배포판을 다운로드해요.
  • 예를 들어 --revision=1e04b2w처럼 Git 리비전 번호를 지정하면 OpenSearch 소스 코드를 다운로드해요.
  • OpenSearch GitHub 저장소에서 추적되는 모든 메타데이터도 다운로드해요.

OpenSearch Benchmark 0.5.0부터는 http_proxy만 지원해요. {: .warning}

http_proxy를 사용하면 OpenSearch Benchmark를 특정 프록시에 연결하고, 해당 프록시를 벤치마크 워크로드에 연결할 수 있어요. 프록시를 추가하려면:

  1. 셸 프로필에 프록시 URL을 추가해요:

    export http_proxy=http://proxy.proxy.org:4444/
    
  2. 셸 프로필을 소싱하고 프록시 URL이 올바르게 설정됐는지 확인해요:

    source ~/.bash_profile ; echo $http_proxy
    
  3. 다음 명령어를 사용해 프록시에 연결하도록 Git을 구성해요. 자세한 내용은 Git 문서를 참고하세요.

    git config --global http_proxy $http_proxy
    
  4. 다음 명령어로 git clone을 사용해 워크로드 저장소를 클론해요. 프록시가 올바르게 구성됐다면 클론이 성공해요.

    git clone http://github.com/opensearch-project/opensearch-benchmark-workloads.git
    
  5. 마지막으로 /.benchmark/logs/benchmark.log 로그를 확인해서 OpenSearch Benchmark가 프록시 서버에 연결할 수 있는지 검증해요. OpenSearch Benchmark가 시작되면 로그 상단에 다음 내용이 표시돼요:

    Connecting via proxy URL [http://proxy.proxy.org:4444/] to the Internet (picked up from the environment variable [http_proxy]).
    

로깅

OpenSearch Benchmark의 로그는 ~/.benchmark/logging.json 파일에서 구성할 수 있어요. 로그 파일 형식을 지정하는 방법에 대한 자세한 내용은 다음 Python 문서를 참고하세요:

기본적으로 OpenSearch Benchmark는 모든 출력을 ~/.benchmark/logs/benchmark.log에 기록해요.

더 알아보기 (Learn more)