【发布时间】:2017-10-26 10:59:32
【问题描述】:
我使用 fio 对我的 SSD 进行基准测试。但是,当指定fsync=1(在每个write() 之后将脏缓冲区同步到磁盘)参数时,我对报告的延迟感到困惑。
$ fio --name=test_seq_write --filename=test_seq --size=2G --readwrite=write --fsync=1
test_seq_write: (g=0): rw=write, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=1
fio-2.1.3
Starting 1 process
test_seq_write: Laying out IO file(s) (1 file(s) / 2048MB)
Jobs: 1 (f=1): [W] [100.0% done] [0KB/31968KB/0KB /s] [0/7992/0 iops] [eta 00m:00s]
test_seq_write: (groupid=0, jobs=1): err= 0: pid=10994: Thu Oct 26 09:09:19 2017
write: io=2048.0MB, bw=35647KB/s, iops=8911, runt= 58831msec
clat (usec): min=2, max=1099, avg= 9.42, stdev=18.19
lat (usec): min=2, max=1099, avg= 9.56, stdev=18.28
这里的 iops 是 8911,所以延迟应该在 100us 左右。但是,报告的延迟为 9us。我很好奇 fio 是否包括fsync 的时间?我正在阅读 fio 文档,但没有找到任何解释。
【问题讨论】:
标签: linux io benchmarking