毫秒级监控 cpu,内存?

2019-09-22 20:57:24 +08:00
 lewin5

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

6741 次点击
所在节点    Linux
17 条回复
KomeijiSatori
2019-09-22 21:03:12 +08:00
cat /proc/stat
reus
2019-09-22 21:06:21 +08:00
没有必要,就等于你毫秒级监控当前的时间秒数一样,采样率没必要过高,进程时间片都可能有几十毫秒,不是有需求的硬实时系统,这样做没有意义
lewin5
2019-09-23 09:12:01 +08:00
@reus 现在就是想作为时序数据库里的数据输入用 echarts 显示变化趋势,正常秒级就行了,现在如果秒级的话基本都是 0,所以只能采样再细一点。
Meridian
2019-09-23 09:19:38 +08:00
zabbix ?
netdata ?
Eds1995
2019-09-23 09:21:36 +08:00
看看 twitter/rezolus( https://github.com/twitter/rezolus) 这个,rust 写的
retanoj
2019-09-23 09:25:42 +08:00
@lewin5
怎么感觉走偏了。。
数据变动不应该是计算出来的嘛?
如果与历史数据求差是 0,那也是可解释的吧。
一定要追求“看到变动”吗?
lewin5
2019-09-23 09:39:06 +08:00
@retanoj 因为主要是想体现我们数据库中 query 查询时系统参数的一些变动和 mysql 中查询时的一些对比,如果都是 0,图表显示就不友好,所以才想细化,把过程中的一些波动体现出来。
lewin5
2019-09-23 10:04:07 +08:00
@Meridian netdata 这个有点像 influxDB+grafana,但是它的最大颗粒度好像也是 1s。
optional
2019-09-23 10:08:49 +08:00
量子物理:你的测量行为会改变目标的状态哦
Mogamigawa
2019-09-23 10:12:26 +08:00
我记得当下的普通计算机能检测到的最短时间间隔是 2 纳秒, 取决于内存频率.
retanoj
2019-09-23 10:35:46 +08:00
@lewin5
所以我才说“有点走偏了”,有点为了监控而监控的味道。。
Leigg
2019-09-23 12:12:44 +08:00
没意义
reus
2019-09-23 12:54:00 +08:00
@lewin5 就算能做到,高频监控占用的负载也会极大影响系统本身,如果想要测量性能,可以采用执行多次再取平均值的方法,或者看看有没有内部的数据可以获取,反正一毫秒获取整体的 cpu 和内存是错误做法。
Harv
2019-09-23 16:46:48 +08:00
额...网上应该不少监控 CPU 占用率、MEM 占用率的源码啊,自己封装下不就好了?就改里面的采样时间
liyunbo
2019-09-23 19:29:41 +08:00
top -d 0

这个可以吗

就可以实时监控,不过 cpu 负载立马飙升。

不知道能不能监测出来你的数据变化。

或者有没有人知道,top -d 0.01 ,是不是 1 毫秒刷新一次
liyunbo
2019-09-23 19:38:38 +08:00
purplewall
2019-09-25 15:51:23 +08:00
asm("rdstc":"=a"(low),"=d"(high))

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

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

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

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

© 2021 V2EX