V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oldboy627
V2EX  ›  程序员

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

  •  
  •   oldboy627 · 2021-11-08 11:56:00 +08:00 · 1518 次点击
    这是一个创建于 1111 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们公司算法团队在跑模型训练,然后我们想计算一下,某个进程 /某个用户下的进程运行一次需要多少 IOPS 。

    请问 V2EX 的吴彦祖,彭于晏,廖凡们有什么方法吗?
    10 条回复    2021-11-15 13:00:24 +08:00
    ch2
        1
    ch2  
       2021-11-08 12:01:47 +08:00
    你给多大就会用多大
    oldboy627
        2
    oldboy627  
    OP
       2021-11-08 12:11:23 +08:00
    @ch2 我们是要计算单个的进程需要的 IOPS ,然后算总的 IOPS 来买存储。
    huangmingyou
        3
    huangmingyou  
       2021-11-08 12:58:00 +08:00
    strace 统计 io 相关的系统调用数量
    huangmingyou
        4
    huangmingyou  
       2021-11-08 12:59:27 +08:00
    cat /proc/pid/io 或者 iotop 也可以看看
    salmon5
        5
    salmon5  
       2021-11-08 13:40:52 +08:00
    这很 AWS
    ETiV
        6
    ETiV  
       2021-11-08 14:09:44 +08:00 via iPhone
    salmon5
        7
    salmon5  
       2021-11-08 14:45:12 +08:00
    这是用的 AWS 吧?目前 linux 上只能 iostat 全局统计,无法统计某个进程的 IOPS
    haoliang
        8
    haoliang  
       2021-11-08 14:50:15 +08:00
    不负责任地提供一个思路:利用 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
        9
    TomChaai  
       2021-11-08 19:23:13 +08:00
    不懂开发,但是总有个赖招。
    在每个会产生 io 的地方加钩子钩你的统计模块,然后计数
    1023
        10
    1023  
       2021-11-15 13:00:24 +08:00 via Android
    难算,也难从 linux 上检测,因 os 会合并优化 io ,存储层不同的硬盘 raid 等参数也影响上层效率,我们的办法是直接买了带有统计功能的存储硬件,在存储层直接统计
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2844 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:53 · PVG 21:53 · LAX 05:53 · JFK 08:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.