2.2. etcd에 대한 하드웨어 검증
OpenShift Container Platform 클러스터를 생성하기 전이나 후에 etcd에 대한 하드웨어를 검증하려면 fio를 사용할 수 있습니다.
사전 요구 사항
- Podman이나 Docker와 같은 컨테이너 런타임은 테스트 중인 머신에 설치됩니다.
-
데이터는
/var/lib/etcd
경로에 기록됩니다.
프로세스
Fio를 실행하고 결과를 분석합니다.
Podman을 사용하는 경우 다음 명령을 실행하세요.
sudo podman run --volume /var/lib/etcd:/var/lib/etcd:Z quay.io/cloud-bulldozer/etcd-perf
$ sudo podman run --volume /var/lib/etcd:/var/lib/etcd:Z quay.io/cloud-bulldozer/etcd-perf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Docker를 사용하는 경우 다음 명령을 실행하세요.
sudo docker run --volume /var/lib/etcd:/var/lib/etcd:Z quay.io/cloud-bulldozer/etcd-perf
$ sudo docker run --volume /var/lib/etcd:/var/lib/etcd:Z quay.io/cloud-bulldozer/etcd-perf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
출력은 실행에서 캡처한 fsync 메트릭의 99번째 백분위수가 10ms 미만인지 비교하여 디스크가 etcd를 호스팅할 만큼 충분히 빠른지 보고합니다. I/O 성능에 영향을 받을 수 있는 가장 중요한 etcd 메트릭은 다음과 같습니다.
-
etcd_disk_wal_fsync_duration_seconds_bucket
메트릭은 etcd의 WAL fsync 기간을 보고합니다. -
etcd_disk_backend_commit_duration_seconds_bucket
메트릭은 etcd 백엔드 커밋 대기 시간을 보고합니다. -
etcd_server_leader_changes_seen_total
메트릭은 리더 변경 사항을 보고합니다.
etcd는 모든 멤버 간에 요청을 복제하므로 성능은 네트워크 입출력(I/O) 지연 시간에 크게 좌우됩니다. 네트워크 지연 시간이 길면 etcd 하트비트가 선거 시간 초과보다 더 오래 걸리고, 이로 인해 클러스터에 방해가 되는 리더 선거가 발생합니다. 배포된 OpenShift Container Platform 클러스터에서 모니터링되는 주요 메트릭은 각 etcd 클러스터 멤버에서 etcd 네트워크 피어 대기 시간의 99번째 백분위 수입니다. 이러한 메트릭을 추적하려면 Prometheus를 사용하십시오.
histogram_quantile(0.99, rate(etcd_network_peer_round_trip_time_seconds_bucket[2m]))
메트릭은 etcd가 멤버 간 클라이언트 요청 복제를 완료하는 데 걸리는 왕복 시간을 보고합니다. 50ms 이하인지 확인하세요.