Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
kgdb00
V2EX  ›  Linux

Linux fio 测试磁盘性能, iodepth 这个参数是什么意思?

  •  
  •   kgdb00 · Sep 13, 2022 · 3543 views
    This topic created in 1379 days ago, the information mentioned may be changed or developed.

    iodepth 跟 linux 内核中 blk-mq 有关系吗?

    iodepth 跟 linux 内核中 request_queue 有关系吗?

    有没有大佬能详细解释一下,最好能从内核代码层面说清楚 iodepth 的实际作用。

    2 replies    2022-09-13 10:52:25 +08:00
    liuchao719
        1
    liuchao719  
       Sep 13, 2022   ❤️ 1
    看了一些回答,总结一下:iodepth 是控制异步 ioengine 的提交队列深度,如果正在执行的 I/O 数量达到了 iodepth ,就需要等待之前的执行完才可以继续提交;和 kernel 没有关系。

    [1]. https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-depth
    [2]. https://unix.stackexchange.com/questions/459045/what-exactly-is-iodepth-in-fio
    [3]. https://unix.stackexchange.com/questions/460491/how-does-fio-benchmark-set-iodepth
    litguy
        2
    litguy  
       Sep 13, 2022   ❤️ 1
    iodepth 就是你提交给 OS 的最大未完成 io 数
    也就是 fio 最多能提交多少 io 给 os
    后端性能足够的情况下,这个值越大,iops 越高,但是会导致 io 服务的延迟增加
    如果不想过多研究,可以认为和 kernel 没关系
    因为这个是应用层自己确定自己要给下层发多少 io 进去的

    事实上和 kernel 的这两个东西有关系
    因为最终都要进入 block layer 的 queue 中排队

    严格来说和更底层的硬件本身也有关系
    在 SATA 时代,设备有上限,一个设备一个队列,单队列这个值最大只有 32
    NVME 时代因为多队列,队列深度大大增加,可以看作无限制
    因为限制到达前设备自己先吃不住了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3322 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 11:17 · PVG 19:17 · LAX 04:17 · JFK 07:17
    ♥ Do have faith in what you're doing.