31.4. 성능 테스트 절차
이 섹션의 목표는 VDO가 설치된 장치의 성능 프로파일을 구성하는 것입니다. 각 테스트는 VDO를 설치하지 않고 실행되어야 하므로 기본 시스템의 성능에 대해 VDO의 성능을 평가할 수 있습니다.
31.4.1. 1 단계 : I/O Depth의 효과, 수정된 4 KB 블록
이 테스트의 목표는 최적의 처리량과 어플라이언스에 대한 가장 짧은 대기 시간을 생성하는 I/O 깊이를 결정하는 것입니다. VDO는 기존 512 B가 레거시 스토리지 장치에서 사용되는 대신 4KB 섹터 크기를 사용합니다. 더 큰 섹터 크기를 사용하면 대용량 스토리지를 지원하고 성능을 향상시키고 대부분의 운영 체제에서 사용하는 캐시 버퍼 크기와 일치시킬 수 있습니다.
- 4KB I/O 및 I/O 깊이 1, 8, 16, 32, 64, 128, 256, 512, 1024의 4 니너 테스트를 수행합니다.
- 순차적 100% 읽기, 고정 4 KB *
- 순차적 100% 쓰기, 고정 4KB
- 100 % 읽기, 고정 4 KB *
- 임의의 100 % 쓰기, 고정 4 KB **
* 쓰기 fio 작업을 먼저 수행하여 읽기 테스트 중에 읽을 수 있는 모든 영역을 미리 채우십시오.** 4KB 임의 쓰기 I/O 실행 후 VDO 볼륨 다시 생성쉘 테스트 입력 stimulus의 예(쓰기):# for depth in 1 2 4 8 16 32 64 128 256 512 1024 2048; do fio --rw=write --bs=4096 --name=vdo --filename=/dev/mapper/vdo0 \ --ioengine=libaio --numjobs=1 --thread --norandommap --runtime=300\ --direct=1 --iodepth=$depth --scramble_buffers=1 --offset=0 \ --size=100g done
- 각 데이터 지점에서 처리량 및 대기 시간을 기록한 다음 그래프를 표시합니다.
- 테스트를 반복하여 4개의업체 테스트(
--rw=randwrite
,--rw=read
,--rw=randread
)를 완료합니다.
결과는 다음과 같이 그래프입니다. 관심 지점은 범위 전반에 걸친 동작이며 I/O 깊이가 증가하면 처리량이 저하될 수 있습니다. 연속 액세스 및 임의 액세스가 다른 값으로 최대 최대이지만 모든 유형의 스토리지 구성에 따라 다를 수 있습니다. 그림 31.1. “I/O Depth Analysis” 에서 각 성능 곡선의 "knee"를 확인합니다. 마커 1은 점 X에서 최대 연속 처리량을 식별하고, 마커 2는 포인트 Z에서 최대 4KB 처리량을 식별합니다.
- 이 특정 어플라이언스는 순차적 4 KB I의 깊이 > X입니다. 깊이가 줄어들며 대역폭 대역폭 증가가 감소하고, 평균 요청 대기 시간이 1~1개씩 증가합니다.
- 이 특정 어플라이언스는 4KB I의 깊이 > Z. 깊이를 줄이고, 대역폭 증가가 감소되고, 평균 요청 대기 시간이 1~1개씩 증가합니다.
그림 31.1. I/O Depth Analysis
그림 31.2. “Random Writes에 대한 I/O 증가의 대기 시간 응답” 그림 31.1. “I/O Depth Analysis” 의 곡선 "knee"의 "knee" 후 임의의 쓰기 대기 시간의 예를 보여줍니다. 벤치마킹 관행은 가장 짧은 응답 시간 페널티가 발생하는 최대 처리량에 대해 테스트해야 합니다. 이 예제 어플라이언스에 대한 테스트 플랜에서 진행하면서 I/O 깊이 = Z를 사용하여 추가 데이터를 수집합니다.
그림 31.2. Random Writes에 대한 I/O 증가의 대기 시간 응답