Azure NetApp Files의 성능 테스트 방법론 이해
이러한 테스트에 사용되는 벤치마크 도구를 FIO(유연한 I/O 테스터)라고 합니다.
스토리지에 대한 성능 제한의 가장자리를 테스트할 때 가능한 최대 결과를 얻으려면 워크로드 생성을 고도로 병렬화해야 합니다.
이는 다음을 의미합니다.
- 하나, 많은 클라이언트에
- 여러 CPU
- 다중 스레드
- 여러 파일에 I/O 수행
- 다중 스레드 네트워크 연결(예: nconnect)
최종 목표는 작업이 다른 작업이 완료되기를 기다려야 하기 전에 가능한 한 스토리지 시스템을 푸시하는 것입니다. 단일 네트워크 흐름을 트래버스하는 단일 클라이언트를 사용하거나 단일 파일의 읽기/쓰기(예: 단일 클라이언트에서 dd 또는 diskspd 사용)는 Azure NetApp Files의 기능을 나타내는 결과를 제공하지 않습니다. 대신 이러한 설정은 일반적으로 선 속도 및/또는 Azure NetApp 파일 QoS 설정으로 추세를 나타내는 단일 파일의 성능을 보여 줍니다.
또한 스토리지가 수행할 수 있는 작업의 정확하고 대표적인 결과를 달성하려면 캐싱을 최대한 최소화해야 합니다. 그러나 캐싱은 최신 애플리케이션이 최상의 성능을 발휘할 수 있는 매우 실제적인 도구입니다. FIO 옵션을 통해 워크로드의 임의화를 사용하여 임의 I/O 워크로드에 대해 무시되는 일부 캐싱 및 캐싱이 있는 시나리오를 다룹니다(특히 randrepeat=0
스토리지 및 directio 에서 캐싱을 방지하여 클라이언트 캐싱을 방지).
유연한 I/O 테스터 정보
FIO(유연한 I/O 테스터)는 사용 편의성과 워크로드 패턴을 정의하는 유연성으로 인해 스토리지 벤치마킹에 일반적으로 사용되는 오픈 소스 워크로드 생성 도구입니다. Azure NetApp Files를 사용하는 방법에 대한 자세한 내용은 Azure NetApp Files에 대한 성능 벤치마크 테스트 권장 사항을 참조 하세요.
FIO 설치
선택한 플랫폼용으로 설치하려면 FIO 추가 정보 파일의 이진 파일 패키지 섹션을 따릅니다.
FIO의 IOPS 예제
이 섹션의 FIO 예제에서는 다음과 같은 설정을 사용합니다.
- VM 인스턴스 크기: D32s_v3
- 용량 풀 서비스 수준 및 크기: 프리미엄/50TiB
- 볼륨 할당량 크기: 48TiB
다음 예제에서는 FIO 임의 읽기 및 쓰기를 보여 줍니다.
FIO: 8k 블록 크기 100% 임의 읽기
fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: 8k 블록 크기 100% 임의 쓰기
fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
벤치마크 결과
Azure NetApp Files에서 FIO의 작동 성능에 대한 공식 벤치마크 결과는 Linux용 Azure NetApp Files 성능 벤치마크를 참조하세요.
FIO의 대역폭 예제
이 섹션의 예제에서는 FIO 순차 읽기 및 쓰기를 보여 줍니다.
FIO: 64k 블록 크기 100% 순차 읽기
fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: 64k 블록 크기 100% 순차 쓰기
fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
벤치마크 결과
Azure NetApp Files에서 FIO의 작동 성능에 대한 공식 벤치마크 결과는 Linux용 Azure NetApp Files 성능 벤치마크를 참조하세요.
FIO를 사용하여 캐싱
성능 벤치마크가 파일을 읽고 쓰는 방법을 제어하는 특정 옵션으로 FIO를 실행할 수 있습니다. 캐싱이 제외된 벤치마크 테스트에서 FIO 플래그 randrepeat=0
는 반복되는 패턴이 아닌 실제 임의 워크로드를 실행하여 캐싱을 방지하는 데 사용되었습니다.
[randrepeat
]https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-type)
기본적으로 정의되지 않은 경우 randrepeat
FIO 도구는 값을 "true"로 설정하므로 파일에서 생성된 데이터가 실제로 임의로 설정되지 않습니다. 따라서 파일 시스템 캐시는 워크로드의 전반적인 성능을 향상시키는 데 사용되지 않습니다.
Azure NetApp Files randrepeat
에 대한 이전 벤치마크에서는 정의되지 않았으므로 일부 파일 시스템 캐싱이 구현되었습니다. 최신 테스트에서 이 옵션은 Azure NetApp Files 서비스의 파일 시스템 캐시를 방지하기 위해 데이터에 적절한 임의성이 있는지 확인하기 위해 "0"(false)으로 설정됩니다. 이렇게 수정하면 전체 숫자가 약간 낮아지지만 캐싱이 무시될 때 스토리지 서비스에서 수행할 수 있는 기능을 보다 정확하게 표현합니다.