• 请不要在回答技术问题时复制粘贴 AI 生成的内容
oldboy627
V2EX  ›  程序员

如何计算应用/process 消耗的 IOPS

  •  
  •   oldboy627 · Nov 8, 2021 · 2698 views
    This topic created in 1821 days ago, the information mentioned may be changed or developed.
    我们公司算法团队在跑模型训练,然后我们想计算一下,某个进程 /某个用户下的进程运行一次需要多少 IOPS 。

    请问 V2EX 的吴彦祖,彭于晏,廖凡们有什么方法吗?
    10 replies  •  2021-11-15 13:00:24 +08:00
    ch2
    ch2
    Nov 8, 2021
    1
    你给多大就会用多大
    oldboy627
    oldboy627
    OP
    Nov 8, 2021
    2
    @ch2 我们是要计算单个的进程需要的 IOPS ,然后算总的 IOPS 来买存储。
    huangmingyou
    huangmingyou
    Nov 8, 2021
    3
    strace 统计 io 相关的系统调用数量
    huangmingyou
    huangmingyou
    Nov 8, 2021
    4
    cat /proc/pid/io 或者 iotop 也可以看看
    salmon5
    salmon5
    Nov 8, 2021
    5
    这很 AWS
    salmon5
    salmon5
    Nov 8, 2021
    7
    这是用的 AWS 吧?目前 linux 上只能 iostat 全局统计,无法统计某个进程的 IOPS
    haoliang
    haoliang
    Nov 8, 2021
    8
    不负责任地提供一个思路:利用 cgroup 的 io controller 的 io.stat 。这里的 io 专指 block io
    具体地可以通过 systemd 运行程序,并开启 IOAccounting ,然后看下对应的 io.stat

    https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#io
    TomChaai
    TomChaai
    Nov 8, 2021
    9
    不懂开发,但是总有个赖招。
    在每个会产生 io 的地方加钩子钩你的统计模块,然后计数
    1023
    1023
    Nov 15, 2021 via Android
    10
    难算,也难从 linux 上检测,因 os 会合并优化 io ,存储层不同的硬盘 raid 等参数也影响上层效率,我们的办法是直接买了带有统计功能的存储硬件,在存储层直接统计
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1418 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 98ms · UTC 18:49 · PVG 02:49 · LAX 10:49 · JFK 13:49
    ♥ Do have faith in what you're doing.