- 호스트 머신이 QPL의 필수 사전 요구 사항을 충족하는지 확인하세요
-
cmake빌드 중에는 deflate_qpl이 기본적으로 활성화됩니다. 실수로 변경한 경우 빌드 플래그를 다시 확인하세요: ENABLE_QPL=1 - 일반적인 요구 사항은 ClickHouse의 일반 빌드 지침을 참조하세요
파일 목록
benchmark_sample 폴더에는 Python 스크립트로 벤치마크를 실행하는 예시가 포함되어 있습니다:
client_scripts에는 일반적인 벤치마크를 실행하기 위한 Python 스크립트가 포함되어 있습니다. 예시는 다음과 같습니다:
client_stressing_test.py: [1~4]개의 서버 인스턴스를 대상으로 쿼리 스트레스 테스트를 수행하는 Python 스크립트입니다.queries_ssb.sql: Star Schema Benchmark의 모든 쿼리가 나열된 파일입니다.allin1_ssb.sh: 이 셸 스크립트는 전체 벤치마크 워크플로를 자동으로 한 번에 실행합니다.
database_files는 lz4/deflate/zstd 코덱에 따라 데이터베이스 파일이 저장됨을 의미합니다.
Star Schema용 벤치마크 자동 실행:
./output/
실패한 경우 아래 섹션에 따라 벤치마크를 수동으로 실행하세요.
정의
환경
- CPU: Sapphire Rapid
- OS 요구 사항은 QPL 시스템 요구 사항을 참조하십시오
- IAA 설정은 Accelerator Configuration을 참조하십시오
- Python 모듈을 설치하십시오:
원시 데이터 생성
dbgen을 사용해 다음 매개변수로 1억 개의 행 데이터를 생성합니다:
-s 20
*.tbl 같은 파일은 ./benchmark_sample/rawdata_dir/ssb-dbgen 아래에 생성되어야 합니다:
데이터베이스 설정
Connected to ClickHouse server 메시지가 표시되어야 합니다. 이 메시지는 클라이언트가 서버와의 연결을 성공적으로 설정했음을 의미합니다.
Star Schema Benchmark에 나와 있는 아래 3단계를 완료하십시오.
- ClickHouse에서 테이블 생성
- 데이터 삽입. 여기서는 입력 데이터로
./benchmark_sample/rawdata_dir/ssb-dbgen/*.tbl을 사용하십시오. - “star schema”를 비정규화된 “flat schema”로 변환
단일 인스턴스에서 벤치마크하기
- 벤치마크를 시작하기 전에 C6를 비활성화하고 CPU 주파수 거버너를
performance로 설정하십시오.
- 소켓 간 교차 메모리 바인딩으로 인한 영향을 없애기 위해
numactl을 사용하여 서버는 한 소켓에, 클라이언트는 다른 소켓에 바인딩합니다. - 단일 인스턴스는 단일 클라이언트가 연결된 단일 서버를 의미합니다.
QPS_Final 키워드를 검색하여 통계를 확인하십시오
다중 인스턴스로 벤치마크하기
- 과도한 스레드로 인한 메모리 병목의 영향을 줄이기 위해 다중 인스턴스로 벤치마크를 실행하는 것을 권장합니다.
- 다중 인스턴스는 각각의 클라이언트에 연결된 여러 대(2대 또는 4대)의 서버를 의미합니다.
- 하나의 소켓에 있는 코어는 균등하게 나누어 각 서버에 할당해야 합니다.
- 다중 인스턴스의 경우 각 코덱마다 새 폴더를 생성하고, 단일 인스턴스와 유사한 단계에 따라 데이터셋을 삽입해야 합니다.
- 클라이언트 측에서는 테이블 생성 및 데이터 삽입 시 할당된 포트로 ClickHouse를 실행해야 합니다.
- 서버 측에서는 포트가 할당된 특정 xml 구성 파일로 ClickHouse를 실행해야 합니다. 다중 인스턴스용 사용자 지정 xml 구성 파일은 모두 ./server_config 아래에 제공됩니다.
- [TBL_FILE_NAME]은
./benchmark_sample/rawdata_dir/ssb-dbgen아래에서 정규식 *. tbl에 맞게 이름이 지정된 파일 이름을 나타냅니다. --port=9001은 서버 인스턴스에 할당된 포트를 의미하며, 이 포트는 config_lz4_s2.xml/config_zstd_s2.xml/config_deflate_s2.xml에도 정의되어 있습니다. 인스턴스를 더 추가하려면 이를 각각 s3/s4 인스턴스에 해당하는 값 9002/9003으로 대체해야 합니다. 이를 지정하지 않으면 기본 포트는 9000이며, 이 값은 첫 번째 인스턴스에서 이미 사용 중입니다.
2는 인스턴스 수를 의미합니다. 더 많은 인스턴스를 사용하려면 이 값을 3 또는 4로 대체해야 합니다. 이 스크립트는 최대 4개의 인스턴스를 지원합니다/
이제 예상한 대로 3개의 로그가 출력되어야 합니다:
QPS_Final 키워드를 검색해 통계를 수집하십시오.
4개 인스턴스에 대한 벤치마크 설정은 위의 2개 인스턴스와 유사합니다.
검토용 최종 보고서에는 2개 인스턴스의 벤치마크 데이터를 사용하는 것을 권장합니다.