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

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

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

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