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))