java 监控采集频率,如何可靠地监控CPU频率(在linux中)?

本文探讨了如何在低开销下监控各内核的CPU工作频率,重点关注从内核sysfs文件和硬件MSR获取精确频率的方法,以及在Ondemand power governor下使用turbostat的局限。讨论了不同采样间隔和工具如cat命令、turbostat的适用性。

我想要监控各个内核的CPU工作频率 . 我不确定监控CPU频率的正确方法是什么,以更低的开销可靠地形成内核级别和硬件级别 .

如果有人能回答我的几个问题,我将非常感激 .

假设我通过将应用程序固定到核心来运行应用程序 . 我想监视它在执行阶段(开始到结束)所需的频率并捕获它 . 我想要从硬件级别(从MSR可能)获得所需的准确频率 .

不确定捕获这个的准确方法是什么?有办法吗?是否有任何工具或命令可以直接从MSR中读取频率值?

我尝试了几种选择,不确定这是否反映了正确的频率:

注意:我试图每10ms,20ms,30ms,.....等等对核心频率进行采样 .

从内核级别:

我正在读一个sysfs文件:

cat / sys / devices / system / cpu / cpu2 / cpufreq / cpuinfo_cur_freq

不确定上面是否每10ms,20ms等给出正确的频率值 . 是否每隔10ms时间间隔读取此文件会产生任何开销?

然后我使用的是turbostat命令,但这并没有告诉我在指定的时间间隔内特定核心的正确频率是多少,而是告诉我繁忙的%等,但我正在寻找采样时间间隔的准确频率我指定的

问题:

从系统的角度来看,以最低开销监控CPU频率的最佳可靠方法是什么?

可以用来监视CPU频率的最小采样间隔时间(我知道这取决于CPU调控器) . 我目前正在假设并感兴趣Ondemand power governor正在设置核心,我试图监控CPU频率 .

如果有人可以指导我,那将是一个很大的帮助 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值