저는 libaio를 사용하여 NVMe SSD의 IOPS를 벤치마킹해 왔으며 출력에서 흥미로운 관찰을 발견했습니다.IO 제출 및 IO 완료. (fio의 입력 매개변수에 대해 묻는 것이 아닙니다 iodepth
. 이에 대한 게시물이 이미 있기 때문입니다.)
내가 사용하는 샘플 명령은 다음과 같습니다.fio --name=iops_rw --ioengine=libaio --iodepth=32 --rw=randwrite --bs=4k --size=1G --numjobs=8 --runtime=30s --time_based --group_reporting --filename=/dev/nvme0n1
fio 출력이 지속적으로 표시됩니다.IO 제출 및 IO 완료값은 [1-4] 범위에 있으며 다음과 같이 관찰됩니다.
IO depths : ........
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
- 첫째, [1, 4] 범위에 있는 값이 무엇인지, 그리고 이 출력을 어떻게 해석해야 하는지 잘 모르겠습니다.
- 이것이 내 NVMe SSD가 "더 나은" fio 매개변수를 사용하여 더 높은 IOPS 성능을 처리할 수 있다는 표시인지도 궁금합니다.
- 또한 이 관찰이 fio 매개변수를 조정하여 IOPS 성능을 향상시키는 데 어떤 통찰력을 제공할 수 있는지 궁금합니다.
매개변수를 변경해 보았는데 numjobs
IO 제출 및 IO 완료에서 동일한 결과가 나타났습니다. 또한 블록 크기를 더 큰 값으로 조정해 보았지만 bs
동작에는 거의 차이가 없었습니다(대부분의 IO 커밋 및 IO 완료는 여전히 [1, 4] 범위에 있었습니다).