fio에서 읽기 및 쓰기의 작업량 공유 이해

fio에서 읽기 및 쓰기의 작업량 공유 이해

다양한 옵션으로 fio 도구를 탐색 중입니다. 읽기 및 쓰기 작업량을 공유하고 싶으므로 아래 작업 파일을 fio에 입력하세요.

[read-4K-write-64K]
blocksize=4K,64K,
rw=readwrite
rwmixread=50
size=10M
filename=readwritefile

출력 스니펫:

read: IOPS=11.0k, BW=42.0MiB/s (45.1MB/s)(616KiB/14msec)
write: IOPS=10.8k, BW=674MiB/s (707MB/s)(9664KiB/14msec)

IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
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%
issued rwts: total=154,151,0,0 short=0,0,0,0 dropped=0,0,0,0
latency   : target=0, window=0, percentile=100.00%, depth=1


Run status group 0 (all jobs):
READ: bw=42.0MiB/s (45.1MB/s), 42.0MiB/s-42.0MiB/s (45.1MB/s-45.1MB/s), io=616KiB (631kB), run=14-14msec
WRITE: bw=674MiB/s (707MB/s), 674MiB/s-674MiB/s (707MB/s-707MB/s), io=9664KiB (9896kB), run=14-14msec

이 옵션을 선택하는 이유rwmixread=50파일을 읽고 쓰기 위한 io 크기를 (대략) 5k로 설정하지 않았습니까?

대신 코드 조각에서 616KiB가 읽기에 사용되고 9664KiB가 쓰기에 사용되는 것을 볼 수 있습니다.

실제 효과는 어떤가요?읽기와 쓰기 혼합그리고혼합된 글쓰기를 읽고 쓰기테스트 작업량과 관련하여.

감사와 안부를 전합니다, 모한

답변1

Arg, 질문이 많은 질문입니다!

rwmixread=50 [..] 옵션이 파일 읽기 및 쓰기를 위한 io 크기를 (대략) 5k로 설정하지 [않는] 이유는 무엇입니까?

rwmixread완료하기 위해 읽어야 하는 I/O 비율을 지정하기만 하면 됩니다.. 안타깝게도 "5k"라는 숫자를 어디서 얻었는지 모르겠습니다. 설명해 주실 수 있나요? 수학을 해보세요:

10M = 10485760 bytes 
(10485760 / ( (4 * 1024) + (64 * 1024) )) = 150

따라서 각 I/O 방향 유형에 대해 약 150회를 수행해야 합니다.

issued rwts: total=154,151,0,0 short=0,0,0,0 dropped=0,0,0,0

fio는 이 목표에서 멀지 않습니다. 추가 계산:

154 * (4 * 1024) = 630784 = 616KBytes

따라서 문제가 무엇인지 명확하지 않습니다. 숫자는 요청한 다양한 블록 크기에 해당하는 것 같습니다(모든 I/O는 10MB의 I/O가 완료된 후에 완료되어야 합니다).

rwmixread 및 rwmixwrite는 실제로 테스트 워크로드에 어떤 영향을 미치나요?

이러한 옵션은 워크로드에서 읽기와 쓰기의 비율을 변경합니다. 그러나 읽기용 블록 크기가 쓰기용 블록 크기보다 크면(또는 그 반대) 고정 크기 영역에서 I/O를 수행할 때 각 방향에서 완료되는 총 데이터 양이 달라집니다.

관련 정보