4장. VDO 성능 테스트
일련의 테스트를 수행하여 VDO 성능을 측정하고, VDO를 사용하여 시스템의 성능 프로필을 확보하고, VDO에서 제대로 수행하는 애플리케이션을 확인할 수 있습니다.
사전 요구 사항
- 하나 이상의 Linux 물리적 블록 장치를 사용할 수 있습니다.
-
대상 블록 장치(예:
/dev/sdb
)는 512GiB보다 큽니다. -
유연한 I/O 테스터(fi
o)
가 설치되어 있습니다. - VDO가 설치되어 있습니다.
4.1. VDO 성능 테스트를 위한 환경 준비
VDO 성능을 테스트하기 전에 호스트 시스템 구성, VDO 구성 및 테스트 중에 사용할 워크로드를 고려해야 합니다. 이러한 선택 사항은 공간 효율성, 대역폭 및 대기 시간의 벤치마킹에 영향을 줍니다.
한 테스트가 다른 테스트의 결과에 영향을 미치지 않도록 하려면 각 테스트의 각 반복에 대해 새 VDO 볼륨을 만들어야 합니다.
4.1.1. VDO 성능 테스트 전 고려 사항
다음 조건 및 구성은 VDO 테스트 결과에 영향을 미칩니다.
시스템 설정
-
사용 가능한 CPU 코어 수와 유형.
taskset
유틸리티를 사용하여 이 정보를 나열할 수 있습니다. - 사용 가능한 메모리 및 총 설치된 메모리
- 스토리지 장치 구성
- 활성 디스크 스케줄러
- Linux 커널 버전
- 패키지 설치
VDO 구성
- 파티션 구성
- VDO 볼륨에 사용되는 파일 시스템
- VDO 볼륨에 할당된 물리 스토리지의 크기
- 생성된 논리 VDO 볼륨의 크기
- 스파스 또는 밀도가 높은 UDS 인덱싱
- 메모리 크기의 UDS 인덱스
- VDO 스레드 구성
워크로드
- 테스트 데이터를 생성하는 데 사용되는 도구 유형
- 동시 클라이언트 수
- 서면 데이터에서 중복 된 4 KiB 블록 수
- 패턴 읽기 및 쓰기
- 작업 세트 크기
4.1.2. VDO 읽기 성능 테스트를 위한 특수 고려 사항
VDO 읽기 성능을 테스트하기 전에 이러한 추가 요소를 고려해야 합니다.
- 4 KiB 블록이 작성되지 않은 경우 VDO는 스토리지를 읽지 않고 즉시 0 블록으로 응답합니다.
- 4 KiB 블록이 작성되었지만 모두 0이 포함된 경우 VDO는 스토리지에서 읽지 않고 즉시 0 블록으로 응답합니다.
이 동작은 읽을 데이터가 없는 경우 읽기 속도가 매우 빠릅니다. 따라서 읽기 테스트를 통해 볼륨을 실제 데이터로 미리 채워야 합니다.
4.1.3. VDO 성능 테스트를 위한 시스템 준비
이 절차에서는 테스트 중에 최적의 VDO 성능을 제공하도록 시스템 설정을 구성합니다.
특정 테스트에 나열된 바운드를 초과하면 비정상적인 결과로 인해 테스트 시간이 손실될 수 있습니다.
예를 들어, VDO 테스트에서는 100GiB 주소 범위에서 임의 읽기를 수행하는 테스트를 설명합니다. 작업 중인 500GiB 세트를 테스트하려면 VDO 블록 맵 캐시에 할당된 RAM 크기를 적절하게 늘려야 합니다.
절차
- CPU가 최고 성능 설정으로 실행되고 있는지 확인합니다.
-
가능한 경우 BIOS 구성 또는 Linux
cpupower
유틸리티를 사용하여 CPU 빈도 확장을 비활성화합니다. - 가능한 경우 CPU에 대해 동적 프로세서 빈도 조정(Turbo Boost 또는 Turbo Core)을 활성화합니다. 이 기능을 사용하면 테스트 결과에 약간의 변동성이 발생하지만 전반적인 성능이 향상됩니다.
파일 시스템은 성능에 고유한 영향을 줄 수 있습니다. 이들은 종종 성능 측정을 불일치하여 결과에 대한 VDO의 영향을 격리하기 어렵게 만듭니다.
적절한 경우 원시 블록 장치의 성능을 측정합니다. 이 기능을 사용할 수 없는 경우 VDO가 대상 구현에 사용할 파일 시스템을 사용하여 장치를 포맷합니다.