16.7.2. 테스트 실행
kubeconfig
파일이 현재 폴더에 있다고 가정하면 테스트 모음을 실행하는 명령은 다음과 같습니다.
$ docker run -v $(pwd)/:/kubeconfig -e KUBECONFIG=/kubeconfig/kubeconfig registry.redhat.io/openshift4/cnf-tests-rhel8:v4.7 /usr/bin/test-run.sh
이 명령을 사용하면 실행 중인 컨테이너 내부에서 kubeconfig
파일을 사용할 수 있습니다.
16.7.2.1. 대기 시간 테스트 실행
OpenShift Container Platform 4.7에서는 CNF-test 컨테이너에서 대기 시간 테스트를 실행할 수도 있습니다. 대기 시간 테스트를 사용하면 성능, 처리량, 대기 시간을 확인할 수 있도록 대기 시간 제한을 설정할 수 있습니다.
대기 시간 테스트는 OS 수준 대기 시간을 감지하는 오픈 소스 프로그램인 oslat
툴을 실행합니다. 자세한 내용은 Red Hat 지식베이스 솔루션에서 How to measure OS and hardware latency on isolated CPUs?를 참조하십시오.
기본적으로 대기 시간 테스트는 비활성화되어 있습니다. 대기 시간 테스트를 활성화하려면 LATENCY_TEST_RUN
변수를 추가하고 해당 값을 true
로 설정해야 합니다. 예: LATENCY_TEST_RUN=true
또한 대기 시간 테스트를 위해 다음 환경 변수를 설정할 수 있습니다.
-
LATENCY_TEST_RUNTIME
- 대기 시간 테스트 실행에 필요한 시간(초)을 지정합니다. -
OSLAT_MAXIMUM_LATENCY
-oslat
테스트 실행 중 모든 버킷에서 예상되는 최대 대기 시간 (마이크로 초)을 지정합니다.
대기 시간 테스트를 수행하려면 다음 명령을 실행합니다.
$ docker run -v $(pwd)/:/kubeconfig -e KUBECONFIG=/kubeconfig/kubeconfig -e LATENCY_TEST_RUN=true -e LATENCY_TEST_RUNTIME=600 -e OSLAT_MAXIMUM_LATENCY=20 registry.redhat.io/openshift4/cnf-tests-rhel8:v4.7 /usr/bin/test-run.sh
검색 모드에서 대기 시간 테스트를 실행해야 합니다. 자세한 내용은 “검색 모드” 섹션을 참조하십시오.
다음 명령을 사용하여 10초 대기 시간 테스트의 샘플 결과를 출력합니다.
[root@cnf12-installer ~]# podman run --rm -v $KUBECONFIG:/kubeconfig:Z -e PERF_TEST_PROFILE=worker-cnf-2 -e KUBECONFIG=/kubeconfig -e LATENCY_TEST_RUN=true -e LATENCY_TEST_RUNTIME=10 -e OSLAT_MAXIMUM_LATENCY=20 -e DISCOVERY_MODE=true registry.redhat.io/openshift4/cnf-tests-rhel8:v4.7 /usr/bin/test-run.sh -ginkgo.focus="Latency" running /0_config.test -ginkgo.focus=Latency
출력 예
I1106 15:09:08.087085 7 request.go:621] Throttling request took 1.037172581s, request: GET:https://api.cnf12.kni.lab.eng.bos.redhat.com:6443/apis/autoscaling.openshift.io/v1?timeout=32s Running Suite: Performance Addon Operator configuration Random Seed: 1604675347 Will run 0 of 1 specs JUnit report was created: /unit_report_performance_config.xml Ran 0 of 1 Specs in 0.000 seconds SUCCESS! -- 0 Passed | 0 Failed | 0 Pending | 1 Skipped PASS running /4_latency.test -ginkgo.focus=Latency I1106 15:09:10.735795 23 request.go:621] Throttling request took 1.037276624s, request: GET:https://api.cnf12.kni.lab.eng.bos.redhat.com:6443/apis/certificates.k8s.io/v1?timeout=32s Running Suite: Performance Addon Operator latency e2e tests Random Seed: 1604675349 Will run 1 of 1 specs I1106 15:10:06.401180 23 nodes.go:86] found mcd machine-config-daemon-r78qc for node cnfdd8.clus2.t5g.lab.eng.bos.redhat.com I1106 15:10:06.738120 23 utils.go:23] run command 'oc [exec -i -n openshift-machine-config-operator -c machine-config-daemon --request-timeout 30 machine-config-daemon-r78qc -- cat /rootfs/var/log/oslat.log]' (err=<nil>): stdout= Version: v0.1.7 Total runtime: 10 seconds Thread priority: SCHED_FIFO:1 CPU list: 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50 CPU for main thread: 2 Workload: no Workload mem: 0 (KiB) Preheat cores: 48 Pre-heat for 1 seconds... Test starts... Test completed. Core: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 CPU Freq: 2096 2096 2096 2096 2096 2096 2096 2096 2096 2096 2096 2096 2096 2092 2096 2096 2096 2092 2092 2096 2096 2096 2096 2096 2096 2096 2096 2096 2096 2092 2096 2096 2092 2096 2096 2096 2096 2092 2096 2096 2096 2092 2096 2096 2096 2096 2096 2096 (Mhz) ... Maximum: 3 4 3 3 3 3 3 3 4 3 3 3 3 4 3 3 3 3 3 4 3 3 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 4 3 3 3 3 3 4 3 3 3 4 (us)