我购买了一个虚拟服务器,该服务器具有8个vCPU,16G内存和500G ssd卷(由ceph rbd支持)。然后,我使用fio测试服务器的IO性能。为了更好地理解fio结果,在测试期间,我还使用blktrace捕获了块层IO跟踪。
-
序列
fio --filename = / dev / vdc --ioengine = libaio --bs = 4k --rw = write --size = 8G --iodepth = 64 --numjobs = 8 --direct = 1-运行时= 960 --name = seqwrite --group_reporting
fio output for seqwrite parsed blktrace output for seqwrite
-
randread
fio --filename = / dev / vdc --ioengine = libaio --bs = 4k --rw = randread --size = 8G --iodepth = 64 --numjobs = 8 --direct = 1-运行时= 960 --name = randread --group_reporting
fio output for randread parsed blktrace output for randread
我想了解的是seqwrite和randread在块层上的区别。
- 为什么randread拥有大量I2D,而seqwrite没有?
- 为什么randread没有Q2M?