나는 blktrace로 생성된 추적 파일을 재생하기 위해 fio-3.14를 사용하고 있습니다. 내 Linux 버전은 Mint 18.3이고 커널은 4.10.0-38-generic입니다. 루트로서 다음 단계를 따릅니다.
- 첫 번째 단계
다음 워크로드 옵션을 사용하여 /home/arghavan/fio/test에 fio 워크로드를 적용했습니다. 또한 blktrace -d /dev/sda6
fio가 작업 부하를 실행하는 /home에 마운트되어 있으므로 /dev/sda6에서 추적을 캡처하기 위해 다음 명령을 사용했습니다.
Fio 작업량
; Read 4 files with aio at different depths
[global]
ioengine=libaio
directory=/home/arghavan/fio/test
buffered=0
rw=randread
bs=128k
size=512m
[file1]
iodepth=4
[file2]
iodepth=32
[file3]
iodepth=8
[file4]
iodepth=16
- 2 단계
나는 다음 명령을 사용하여 blkparse sda6 -a read -o /dev/null -d /root/traces/sda6_trace.bin
fio가 추적을 재생하는 데 사용할 수 있는 blkparse 바이너리를 만듭니다.
- 세 번째 단계
나는 fio와 다음 명령을 사용하여 fio --name=rp1 --read_iolog=/home/arghavan/traces/sda6_trace.bin --replay_no_stall=1 --replay_redirect=/dev/sda6
추적을 재생합니다. 그러나 fio는 다음 오류를 보고합니다.
fio: io_u error on file /dev/sda6: No space left on device: write offset=278643662848, buflen=4096
fio: pid=11495, err=28/file:io_u.c:1785, func=io_u error, error=No space left on device
Jobs: 1 (f=1): [f(1)][-.-%][eta 00m:00s]
rp1: (groupid=0, jobs=1): err=28 (file:io_u.c:1785, func=io_u error, error=No space left on device)
기기에 여유 공간이 많이 있는데 문제가 무엇인지 모르겠습니다. 어떻게 해야 합니까?
답변1
전체 파티션의 I/O 가 아닌 blktrace
파티션의 I/O만 기록했 습니까 ? 이해합니다/dev/sda6
/dev/sda
https://www.spinics.net/lists/linux-btrace/msg00417.html하지만 주류 커널에서 사용되었는지는 확실하지 않습니다 ...