A fio problem is found during work. The read speed of the data tested by the test group is 17.0 g/s, And the read speed is 13.2 g/s. You know, I only have 24 7.2 K RPM hard drives in the background! It is impossible to have such a speed.
After I got home, I simulated the actual situation and the result showed the situation again:
Run FIO-filename =/tmp/test-Direct = 1-iodepth 1-thread-RW = write-ioengine = psync-BS = 1 m-size = 20g-numjobs = 50-runtime = 60-group_reporting-name = sqe_100write
Test results: Write: BW = 81.8mib/s (85.7 Mb/s), 81.8mib/s-81.8MiB/s (85.7 MB/s-85.7MB/S), IO = 4948mib (5188 MB), run = 60523-60523msec
Note: FIO write writes only 4948mib, and the result is normal.
Then run FIO-filename =/tmp/test-Direct = 1-iodepth 1-thread-RW = read-ioengine = psync-BS = 1 m-size = 20g-numjobs = 50-runtime = 60-group_reporting-name = sqe_100read
The first 33 s of read speed is about 200 m/s, and then the speed soared to 10 Gb/s, the final result reached 6354mib/s. [My current memory is DDR3-800, bandwidth is 6.4 Gb/s]
Why is the result incorrect?
Because the/tmp/test file was written when FIO was executed for the first time, but only 4948mib was written. Then I was lazy and directly used this file for FIO read testing. FIO checks whether the file exists and the file size is appropriate. Therefore, FIO read reads 4948mib first, And the rest does not know where to read it! Possibly from memory! Therefore, the obtained result is high, which deviates from the actual data.
Record the problem and avoid it later.
FIO read Test Result Deviation