12.3. 대기 시간 측정

cnf-tests 이미지는 세 가지 툴을 사용하여 시스템의 대기 시간을 측정합니다.

  • hwlatdetect
  • cyclictest
  • oslat

각 도구에는 특정 용도가 있습니다. 안정적인 테스트 결과 달성을 위해 순서대로 툴을 사용합니다.

hwlatdetect
베어 메탈 하드웨어에서 수행할 수 있는 기준을 측정합니다. 다음 대기 시간 테스트를 진행하기 전에 hwlatdetect 에서 보고한 대기 시간이 운영 체제 튜닝을 통해 하드웨어 대기 시간 급증을 수정할 수 없기 때문에 필요한 임계값을 충족하는지 확인합니다.
cyclictest
hwlatdetect 가 검증을 통과한 후 실시간 커널 스케줄러 대기 시간을 확인합니다. cyclictest 툴은 반복된 타이머를 예약하고 원하는 트리거 시간과 실제 트리거 시간 간의 차이를 측정합니다. 차이점은 인터럽트 또는 프로세스 우선순위로 인한 튜닝과 관련된 기본 문제를 발견할 수 있습니다. 툴은 실시간 커널에서 실행해야 합니다.
oslat
CPU 집약적 DPDK 애플리케이션과 유사하게 작동하며 CPU 사용량이 많은 데이터 처리를 시뮬레이션하는 사용 중인 루프에 대한 모든 중단 및 중단을 측정합니다.

테스트에서는 다음과 같은 환경 변수를 도입합니다.

표 12.1. 대기 시간 테스트 환경 변수

환경 변수설명

LATENCY_TEST_DELAY

테스트 실행을 시작한 후 시간(초)을 지정합니다. 변수를 사용하여 CPU 관리자 조정 루프를 허용하여 기본 CPU 풀을 업데이트할 수 있습니다. 기본값은 0입니다.

LATENCY_TEST_CPUS

대기 시간 테스트를 실행하는 Pod에서 사용하는 CPU 수를 지정합니다. 변수를 설정하지 않으면 기본 구성에 모든 분리된 CPU가 포함됩니다.

LATENCY_TEST_RUNTIME

대기 시간 테스트를 실행해야 하는 시간(초)을 지정합니다. 기본값은 300초입니다.

HWLATDETECT_MAXIMUM_LATENCY

워크로드 및 운영 체제에 대해 허용되는 최대 하드웨어 대기 시간(마이크로초)을 지정합니다. HWLA GradleTECT_MAXIMUM_LATENCY 또는 MA XIMUM_LATENCY 의 값을 설정하지 않으면 툴 자체에서 기본 예상 임계값(도움말)과 실제 최대 대기 시간을 비교합니다. 그런 다음 테스트가 실패하거나 그에 따라 성공합니다.

CYCLICTEST_MAXIMUM_LATENCY

cyclictest 실행 중에 모든 스레드가 예상하는 최대 대기 시간을 지정합니다. CYCLICTEST_MAXIMUM_LATENCY 또는 MAXIMUM_LATENCY 값을 설정하지 않으면 이 툴에서 예상 값과 실제 최대 대기 시간의 비교를 건너뜁니다.

OSLAT_MAXIMUM_LATENCY

oslat 테스트 결과에 대해 microseconds의 최대 허용 대기 시간을 지정합니다. OSLAT_MAXIMUM_LATENCY 또는 MAXIMUM_LATENCY 값을 설정하지 않으면 툴에서 예상과 실제 최대 대기 시간의 비교를 건너뜁니다.

MAXIMUM_LATENCY

microseconds에서 허용되는 최대 대기 시간을 지정하는 통합 변수입니다. 사용 가능한 모든 대기 시간 툴에 적용됩니다.

LATENCY_TEST_RUN

테스트 실행 여부를 나타내는 부울 매개변수입니다. LATENCY_TEST_RUN 은 기본적으로 false 로 설정됩니다. 대기 시간 테스트를 실행하려면 이 값을 true 로 설정합니다.

참고

대기 시간 툴과 관련된 변수가 통합 변수보다 우선합니다. 예를 들어 OSLAT_MAXIMUM_LATENCY 가 30 마이크로초로 설정되고 MAXIMUM_LATENCY 가 10 마이크로초로 설정된 경우 oslat 테스트가 최대 허용 가능한 대기 시간 30마이크로 실행됩니다.