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

2021-11-08 11:56:00 +08:00
 oldboy627
我们公司算法团队在跑模型训练,然后我们想计算一下,某个进程 /某个用户下的进程运行一次需要多少 IOPS 。

请问 V2EX 的吴彦祖,彭于晏,廖凡们有什么方法吗?
1518 次点击
所在节点    程序员
10 条回复
ch2
2021-11-08 12:01:47 +08:00
你给多大就会用多大
oldboy627
2021-11-08 12:11:23 +08:00
@ch2 我们是要计算单个的进程需要的 IOPS ,然后算总的 IOPS 来买存储。
huangmingyou
2021-11-08 12:58:00 +08:00
strace 统计 io 相关的系统调用数量
huangmingyou
2021-11-08 12:59:27 +08:00
cat /proc/pid/io 或者 iotop 也可以看看
salmon5
2021-11-08 13:40:52 +08:00
这很 AWS
ETiV
2021-11-08 14:09:44 +08:00
salmon5
2021-11-08 14:45:12 +08:00
这是用的 AWS 吧?目前 linux 上只能 iostat 全局统计,无法统计某个进程的 IOPS
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
2021-11-08 19:23:13 +08:00
不懂开发,但是总有个赖招。
在每个会产生 io 的地方加钩子钩你的统计模块,然后计数
1023
2021-11-15 13:00:24 +08:00
难算,也难从 linux 上检测,因 os 会合并优化 io ,存储层不同的硬盘 raid 等参数也影响上层效率,我们的办法是直接买了带有统计功能的存储硬件,在存储层直接统计

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/813815

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX