AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1240276
Accepted
tuk
tuk
Asked: 2020-05-17 06:59:44 +0800 CST2020-05-17 06:59:44 +0800 CST 2020-05-17 06:59:44 +0800 CST

fio 在 iodepth 1 报告读取 iops 的高值

  • 772

我在 Ubuntu 16.04 上使用 fio-2.2.10。

在我的一个设置中,我观察到 io-depth = 1 时读取 iops 的高值。一次运行报告 iops=11418,另一次运行 iops=33507 和 iops=44329。这似乎不正确。下面是运行结果。

有人可以让我知道可能出了什么问题,以及我是否在 fio 中遇到了一些已知问题?

运行 1

ubuntu@vrni-proxy-release:/var/log/foundationdb$ suf=`head
/dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo ''` &&
file="/var/lib/ubuntu/fio-$suf" && echo $file && fio --filename=$file
--direct=1  --ioengine=libaio --bs=4K  --name=bw-test --rw=randread
--iodepth=1 --size=200M ; rm -f $file
/var/lib/ubuntu/fio-oPHRC8lfJujNk
bw-test: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=1
fio-2.2.10
Starting 1 process
bw-test: Laying out IO file(s) (1 file(s) / 200MB)
Jobs: 1 (f=1): [r(1)] [100.0% done] [49132KB/0KB/0KB /s] [12.3K/0/0
iops] [eta 00m:00s]
bw-test: (groupid=0, jobs=1): err= 0: pid=48549: Fri May 15 18:42:08 2020
  read : io=204800KB, bw=45674KB/s, iops=11418, runt=  4484msec
    slat (usec): min=4, max=258, avg= 5.53, stdev= 2.20
    clat (usec): min=0, max=22304, avg=81.16, stdev=230.44
     lat (usec): min=17, max=22309, avg=86.78, stdev=230.46
    clat percentiles (usec):
     |  1.00th=[   14],  5.00th=[   14], 10.00th=[   15], 20.00th=[   16],
     | 30.00th=[   19], 40.00th=[   19], 50.00th=[   20], 60.00th=[   20],
     | 70.00th=[   21], 80.00th=[   25], 90.00th=[  266], 95.00th=[  286],
     | 99.00th=[  532], 99.50th=[ 1400], 99.90th=[ 2832], 99.95th=[ 3088],
     | 99.99th=[ 5280]
    bw (KB  /s): min=33760, max=51584, per=98.18%, avg=44842.00, stdev=6783.12
    lat (usec) : 2=0.04%, 4=0.01%, 10=0.02%, 20=45.62%, 50=35.21%
    lat (usec) : 100=0.15%, 250=2.24%, 500=15.67%, 750=0.25%, 1000=0.16%
    lat (msec) : 2=0.28%, 4=0.34%, 10=0.01%, 50=0.01%
  cpu          : usr=0.98%, sys=10.53%, ctx=51195, majf=0, minf=10
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=51200/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
   READ: io=204800KB, aggrb=45673KB/s, minb=45673KB/s, maxb=45673KB/s,
mint=4484msec, maxt=4484msec

Disk stats (read/write):
    dm-6: ios=48310/2, merge=0/0, ticks=3944/0, in_queue=3972,
util=90.95%, aggrios=51200/40, aggrmerge=0/205, aggrticks=4048/0,
aggrin_queue=4048, aggrutil=87.75%
  sda: ios=51200/40, merge=0/205, ticks=4048/0, in_queue=4048, util=87.75%

运行 2

ubuntu@vrni-proxy-release:/var/log/foundationdb$ suf=`head
/dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo ''` &&
file="/var/lib/ubuntu/fio-$suf" && echo $file && fio --filename=$file
--direct=1  --ioengine=libaio --bs=4K  --name=bw-test --rw=randread
--iodepth=1 --size=200M ; rm -f $file
/var/lib/ubuntu/fio-PipAwOU94ybHL
bw-test: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=1
fio-2.2.10
Starting 1 process
bw-test: Laying out IO file(s) (1 file(s) / 200MB)
Jobs: 1 (f=1)
bw-test: (groupid=0, jobs=1): err= 0: pid=48575: Fri May 15 18:42:15 2020
  read : io=204800KB, bw=134031KB/s, iops=33507, runt=  1528msec
    slat (usec): min=4, max=19840, avg= 5.38, stdev=87.66
    clat (usec): min=1, max=3589, avg=23.64, stdev=89.84
     lat (usec): min=17, max=19863, avg=29.07, stdev=125.52
    clat percentiles (usec):
     |  1.00th=[   14],  5.00th=[   15], 10.00th=[   15], 20.00th=[   15],
     | 30.00th=[   15], 40.00th=[   15], 50.00th=[   16], 60.00th=[   16],
     | 70.00th=[   16], 80.00th=[   16], 90.00th=[   17], 95.00th=[   17],
     | 99.00th=[  286], 99.50th=[  318], 99.90th=[ 1576], 99.95th=[ 2352],
     | 99.99th=[ 3056]
    bw (KB  /s): min=119592, max=143792, per=99.48%, avg=133333.33,
stdev=12429.48
    lat (usec) : 2=0.01%, 10=0.01%, 20=97.54%, 50=0.47%, 100=0.09%
    lat (usec) : 250=0.05%, 500=1.61%, 750=0.06%, 1000=0.02%
    lat (msec) : 2=0.06%, 4=0.08%
  cpu          : usr=1.83%, sys=31.17%, ctx=51196, majf=0, minf=11
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=51200/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
   READ: io=204800KB, aggrb=134031KB/s, minb=134031KB/s,
maxb=134031KB/s, mint=1528msec, maxt=1528msec

Disk stats (read/write):
    dm-6: ios=43347/0, merge=0/0, ticks=1080/0, in_queue=1084,
util=75.80%, aggrios=51200/10, aggrmerge=0/6, aggrticks=1048/0,
aggrin_queue=1048, aggrutil=62.83%
  sda: ios=51200/10, merge=0/6, ticks=1048/0, in_queue=1048, util=62.83%
disk 16.04 io
  • 1 1 个回答
  • 339 Views

1 个回答

  • Voted
  1. Best Answer
    Anon
    2020-05-21T11:24:55+08:002020-05-21T11:24:55+08:00

    我看到您正在使用direct=1(将请求O_DIRECT),但您似乎正在使用文件系统中的文件...您是否知道无法保证O_DIRECT 会绕过所有可能的文件系统配置上的缓冲区缓存?

    一个警告标志是:

        clat (usec): min=1, max=3589, avg=23.64, stdev=89.84
    

    您的 SATA/SCSI 磁盘真的可以在一微秒内完成一次 I/O 吗?如果不是,那么很可能您正在读取内核缓存。然而,我们在 RUN 2 上也看到了这一点:

    [...]
         issued    : total=r=51200/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
    [...]
    Disk stats (read/write):
    [...]
      sda: ios=51200/10, merge=0/6, ticks=1048/0, in_queue=1048, util=62.83%
    

    (“磁盘统计信息”告诉我们作业运行期间的内核块设备统计信息,在此示例sda中可能是“真实”磁盘的块设备)

    所以磁盘发送了 51200 个 I/O,这与最初发送的数字 fio 相匹配,所以也许还有其他事情发生?正在完成的 I/O 区域很小(200MBytes),所以它的某些部分可能驻留在磁盘自己的缓存中?做一个测试,在更大的区域(10 千兆字节)上发送 I/O 以消除这种缓存的影响可能是明智的。此外,测试不会运行很长时间(4 秒),因此如果正在发送一些写入(提示:磁盘 I/O 统计信息是reads/writes),那么您可能会看到干扰(注意util统计信息)。

    如果不了解您的确切设置(例如文件系统、文件系统配置、磁盘类型、磁盘状况等),路人很难说出任何确定的信息。

    TLDR;这不太可能是一个 fio 问题(但 fio 2.2.10 非常旧 - https://github.com/axboe/fio/releases)。

    注意:根据评论,看起来提问者通过在更大的 1GByte 区域上运行更长的测试获得了更稳定的结果。

    • 1

相关问题

  • 有没有办法强制特定文件仅存在于 RAM 中?

  • 如何找出剩余的磁盘空间?

  • 从 9.04 到 10.04 后磁盘非常慢

  • 是否可以扩展 wubi 安装可用的磁盘空间?[复制]

  • 如何确定我系统上最大的文件/目录存储在哪里?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve