首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fio基准延迟解释

fio基准延迟解释
EN

Stack Overflow用户
提问于 2017-10-26 10:59:32
回答 1查看 5.4K关注 0票数 0

我用fio来衡量我的SSD。但是,当指定了fsync=1 (在每个write()参数之后将脏缓冲区同步到磁盘)时,我对报告的延迟感到困惑。

代码语言:javascript
复制
$ 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,所以延迟应该在100 is左右。然而,报告的延迟是9us。我很好奇,fio包括fsync的时间吗?我在看外国医生,但没有找到任何解释。

EN

回答 1

Stack Overflow用户

发布于 2018-02-22 11:37:30

Fio3.5或更高版本现在能够报告fsync延迟!在执行符合以下所有条件的工作负载时,您将看到此信息:

  • 执行某种形式的写入
  • 有一个fsync/fdatasync/sync_file_range
  • --output-format是正常的(将有fsync/fdat异步/sync_file_range部分)或json/json+ (值记录在“同步”方向下)。

下面是显示fsync延迟的正常输出的一个示例:

代码语言:javascript
复制
$ ./fio --filename=/tmp/fio.tmp --size=1m --bs=512 --name=go --rw=write --fdatasync=1
go: (g=0): rw=write, bs=(R) 512B-512B, (W) 512B-512B, (T) 512B-512B, ioengine=psync, iodepth=1
[...]
go: (groupid=0, jobs=1): err= 0: pid=26958: Wed Feb 21 14:06:11 2018
  write: IOPS=512k, BW=250MiB/s (262MB/s)(1024KiB/4msec)
    clat (nsec): min=673, max=12144, avg=709.40, stdev=260.94
[...]
  lat (usec)   : 2=0.05%, 4=0.05%, 20=0.05%
  fsync/fdatasync/sync_file_range:
    sync (nsec): min=353, max=5307, avg=364.78, stdev=115.66
    sync percentiles (nsec):
     |  1.00th=[  358],  5.00th=[  358], 10.00th=[  358], 20.00th=[  362],
     | 30.00th=[  362], 40.00th=[  362], 50.00th=[  362], 60.00th=[  362],
     | 70.00th=[  362], 80.00th=[  362], 90.00th=[  366], 95.00th=[  366],
     | 99.00th=[  370], 99.50th=[  370], 99.90th=[  402], 99.95th=[ 2064],
     | 99.99th=[ 5280]
[...]

因此,在回答你的问题时:

我很好奇,fio包括fsync的时间吗?

在fio 3.3和更低的中,没有(参见https://stackoverflow.com/a/46968852/9109338中的更新)。在fio 3.5和更高版本中,类型的fsync - fio在lat/clat延迟中不包含fsync (毕竟它不知道应该将fsync延迟归因于什么,因为它无法检索该信息),但是它自己帐户和报告fsync延迟。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46952571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档