技术解析

毫秒级监控 cpu,内存?
0
1975-02-24 01:28:29
idczone

linux 系统平常查看 cpu,mem 之类的用 iostat -kdx 1 或者 top 命令查看,一般都是秒级, 但是现在有的 sql 运行级别是毫秒级,30ms 就执行完了。 现在想以毫秒级别来监控 cpu 或者内存输出到日志或文件中,作为趋势图的参数, 有没有好点的办法呀或者特殊命令?谢谢了!


cat /proc/stat

没有必要,就等于你毫秒级监控当前的时间秒数一样,采样率没必要过高,进程时间片都可能有几十毫秒,不是有需求的硬实时系统,这样做没有意义

现在就是想作为时序数据库里的数据输入用 echarts 显示变化趋势,正常秒级就行了,现在如果秒级的话基本都是 0,所以只能采样再细一点。

zabbix ?
netdata ?

看看 twitter/rezolus( https://github.com/twitter/rezolus) 这个,rust 写的


怎么感觉走偏了。。
数据变动不应该是计算出来的嘛?
如果与历史数据求差是 0,那也是可解释的吧。
一定要追求“看到变动”吗?

因为主要是想体现我们数据库中 query 查询时系统参数的一些变动和 mysql 中查询时的一些对比,如果都是 0,图表显示就不友好,所以才想细化,把过程中的一些波动体现出来。

netdata 这个有点像 influxDB+grafana,但是它的最大颗粒度好像也是 1s。

量子物理:你的测量行为会改变目标的状态哦

我记得当下的普通计算机能检测到的最短时间间隔是 2 纳秒, 取决于内存频率.


所以我才说“有点走偏了”,有点为了监控而监控的味道。。

没意义

就算能做到,高频监控占用的负载也会极大影响系统本身,如果想要测量性能,可以采用执行多次再取平均值的方法,或者看看有没有内部的数据可以获取,反正一毫秒获取整体的 cpu 和内存是错误做法。

额...网上应该不少监控 CPU 占用率、MEM 占用率的源码啊,自己封装下不就好了?就改里面的采样时间

top -d 0
这个可以吗
就可以实时监控,不过 cpu 负载立马飙升。
不知道能不能监测出来你的数据变化。
或者有没有人知道,top -d 0.01 ,是不是 1 毫秒刷新一次

https://blog.csdn.net/redmoon729/article/details/53467169
这个可能对楼主有用

asm("rdstc":"=a"(low),"=d"(high))

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服