【发布时间】:2020-08-29 02:55:00
【问题描述】:
我想在执行查询时测量正在运行的数据库服务器的 CPU 使用率。 目标是获取挂钟时间、总 CPU 时间、用户 CPU 时间和内核(系统)CPU 时间,这样我就可以估计有多少时间用于计算,多少时间用于 I/O。
服务器专门用于这个实验,没有查询运行时CPU使用率接近0%,所以我的计划是
- 启动监视器
- 运行查询
- 停止监视器并在间隔期间收集 CPU 使用率
监视器可以给出该时间段内的 CPU 时间总和,也可以给出采样结果列表,我可以自己总结。
我已经搜索了类似的问题并尝试了几种解决方案,但它们都不能满足我的需求。
-
pidstatpidstat 看起来不错,但是粒度太粗了。最小的间隔是 1 秒,我需要一个更精细的间隔,比如 100 毫秒。 -
mpstat和pidstat一样的问题。间隔大。 -
toptop 可以批量运行,但采样间隔也很大(2s-3s)。它也不提供用户/内核时间细分。
谢谢大家的建议!
【问题讨论】:
-
您应该在 dba.stackexchange.com 和/或 linux 管理员论坛上看到