검색

4.5. VDO 성능에서 I/O 요청 크기의 영향 테스트

download PDF

이러한 테스트를 사용하면 최적의 I/O 깊이에서 VDO의 최상의 성능을 생성하는 블록 크기를 확인할 수 있습니다.

테스트에서는 고정된 I/O 깊이에서 4Ker 테스트를 수행하고, 8KiB ~ 1MiB 범위의 블록 크기가 다양합니다.

사전 요구 사항

4.5.1. VDO에서 순차적 쓰기에 I/O 요청 크기의 효과 테스트

이 테스트에서는 다양한 I/O 요청 크기의 VDO 볼륨에서 순차적 쓰기 작업이 수행하는 방식을 결정합니다.

절차

  1. 새 VDO 볼륨을 만듭니다.

    자세한 내용은 4.2절. “성능 테스트를 위한 VDO 볼륨 생성” 의 내용을 참조하십시오.

  2. 테스트 볼륨에서 쓰기 fio 작업을 수행하여 테스트에서 액세스할 수 있는 모든 영역을 미리 채웁니다.

    # fio --rw=write \
          --bs=8M \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --thread \
          --direct=1 \
          --scramble_buffers=1
  3. 순차적 쓰기 테스트에 대해 보고된 처리량 및 대기 시간을 기록합니다.

    # for iosize in 4 8 16 32 64 128 256 512 1024; do
      fio --rw=write \
          --bs=${iosize}k \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --numjobs=1 \
          --thread \
          --norandommap \
          --runtime=300 \
          --direct=1 \
          --iodepth=optimal-depth \
          --scramble_buffers=1 \
          --offset=0 \
          --size=100g
      done
  4. VDO 테스트 볼륨을 제거합니다.

    자세한 내용은 4.3절. “VDO 성능 테스트 볼륨 정리” 의 내용을 참조하십시오.

4.5.2. VDO에서 임의의 쓰기에 I/O 요청 크기의 효과 테스트

이 테스트에서는 다양한 I/O 요청 크기의 VDO 볼륨에서 임의의 쓰기 작업을 수행하는 방식을 결정합니다.

중요

각 I/O 요청 크기 테스트 실행 간에 VDO 볼륨을 다시 생성해야 합니다.

절차

4k,8k,16k,32k,64k,128k, 256 k, 512k 1024k 의 I/O 요청 크기를 별도로 다음 시리즈 단계를 수행합니다.

  1. 새 VDO 볼륨을 만듭니다.

    자세한 내용은 4.2절. “성능 테스트를 위한 VDO 볼륨 생성” 의 내용을 참조하십시오.

  2. 테스트 볼륨에서 쓰기 fio 작업을 수행하여 테스트에서 액세스할 수 있는 모든 영역을 미리 채웁니다.

    # fio --rw=write \
          --bs=8M \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --thread \
          --direct=1 \
          --scramble_buffers=1
  3. 임의 쓰기 테스트에 대해 보고된 처리량 및 대기 시간을 기록합니다.

    # fio --rw=randwrite \
          --bs=request-size \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --numjobs=1 \
          --thread \
          --norandommap \
          --runtime=300 \
          --direct=1 \
          --iodepth=optimal-depth \
          --scramble_buffers=1 \
          --offset=0 \
          --size=100g
      done
  4. VDO 테스트 볼륨을 제거합니다.

    자세한 내용은 4.3절. “VDO 성능 테스트 볼륨 정리” 의 내용을 참조하십시오.

4.5.3. VDO에서 순차적 읽기에서 I/O 요청 크기의 효과 테스트

이 테스트에서는 다양한 I/O 요청 크기에서 VDO 볼륨에서 순차 읽기 작업을 수행하는 방식을 결정합니다.

절차

  1. 새 VDO 볼륨을 만듭니다.

    자세한 내용은 4.2절. “성능 테스트를 위한 VDO 볼륨 생성” 의 내용을 참조하십시오.

  2. 테스트 볼륨에서 쓰기 fio 작업을 수행하여 테스트에서 액세스할 수 있는 모든 영역을 미리 채웁니다.

    # fio --rw=write \
          --bs=8M \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --thread \
          --direct=1 \
          --scramble_buffers=1
  3. 순차적 읽기 테스트에 대해 보고된 처리량 및 대기 시간을 기록합니다.

    # for iosize in 4 8 16 32 64 128 256 512 1024; do
      fio --rw=read \
          --bs=${iosize}k \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --numjobs=1 \
          --thread \
          --norandommap \
          --runtime=300 \
          --direct=1 \
          --iodepth=optimal-depth \
          --scramble_buffers=1 \
          --offset=0 \
          --size=100g
      done
  4. VDO 테스트 볼륨을 제거합니다.

    자세한 내용은 4.3절. “VDO 성능 테스트 볼륨 정리” 의 내용을 참조하십시오.

4.5.4. VDO에서 임의의 읽기에서 I/O 요청 크기의 효과 테스트

이 테스트에서는 다양한 I/O 요청 크기의 VDO 볼륨에서 임의의 읽기 작업을 수행하는 방식을 결정합니다.

절차

  1. 새 VDO 볼륨을 만듭니다.

    자세한 내용은 4.2절. “성능 테스트를 위한 VDO 볼륨 생성” 의 내용을 참조하십시오.

  2. 테스트 볼륨에서 쓰기 fio 작업을 수행하여 테스트에서 액세스할 수 있는 모든 영역을 미리 채웁니다.

    # fio --rw=write \
          --bs=8M \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --thread \
          --direct=1 \
          --scramble_buffers=1
  3. 임의 읽기 테스트에 대해 보고된 처리량 및 대기 시간을 기록합니다.

    # for iosize in 4 8 16 32 64 128 256 512 1024; do
      fio --rw=read \
          --bs=${iosize}k \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --numjobs=1 \
          --thread \
          --norandommap \
          --runtime=300 \
          --direct=1 \
          --iodepth=optimal-depth \
          --scramble_buffers=1 \
          --offset=0 \
          --size=100g
      done
  4. VDO 테스트 볼륨을 제거합니다.

    자세한 내용은 4.3절. “VDO 성능 테스트 볼륨 정리” 의 내용을 참조하십시오.

4.5.5. 다양한 I/O 요청 크기에서 VDO 성능 분석

다음 예제에서는 다양한 I/O 요청 크기에 기록된 VDO 처리량 및 대기 시간을 분석합니다.

예 4.2. I/O 요청 크기 분석

그림 4.3. 요청 크기 및 처리량 분석 및 키 변형 지점 비교

요청 크기 및 처리량 분석 및 키 변형 지점 비교

예제 결과 분석:

  • 순차적 쓰기는 요청 크기 Y 에서 최대 처리량에 도달합니다.

    이 곡선은 구성 가능하거나 특정 요청 크기에 따라 자연스럽게 제어되는 애플리케이션이 성능을 인식하는 방법을 보여줍니다. 4KiB I/O 작업이 병합하면 도움이 될 수 있기 때문에 요청 크기가 커질수록 처리량이 증가합니다.

  • 순차적 읽기는 지점 Z 에서 유사한 최대 처리량에 도달합니다.

    이러한 기능이 정점되면 I/O 작업이 완료되기 전의 전체 대기 시간이 추가 처리량 없이 증가합니다. 이 크기보다 큰 I/O 작업을 수락하지 않도록 장치를 튜닝해야 합니다.

  • 임의의 읽기는 지점 X 에서 최대 처리량을 달성합니다.

    특정 장치는 대규모 요청 크기 임의 액세스에서 순차적 처리 속도를 거의 달성할 수 있지만, 다른 장치는 순차적으로 순차적으로 액세스하지 않는 경우 더 많은 페널티를 겪게 됩니다.

  • 임의의 쓰기는 지점 Y 에서 최대 처리량을 달성합니다.

    임의 쓰기는 중복 제거 장치의 가장 많은 상호 작용을 포함하며, VDO는 특히 요청 크기 또는 I/O 깊이가 큰 경우 고성능을 달성합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.