linux 系统平常查看 cpu,mem 之类的用 iostat -kdx 1 或者 top 命令查看,一般都是秒级, 但是现在有的 sql 运行级别是毫秒级,30ms 就执行完了。 现在想以毫秒级别来监控 cpu 或者内存输出到日志或文件中,作为趋势图的参数, 有没有好点的办法呀或者特殊命令?谢谢了!
1
KomeijiSatori 2019-09-22 21:03:12 +08:00
cat /proc/stat
|
2
reus 2019-09-22 21:06:21 +08:00
没有必要,就等于你毫秒级监控当前的时间秒数一样,采样率没必要过高,进程时间片都可能有几十毫秒,不是有需求的硬实时系统,这样做没有意义
|
3
lewin5 OP @reus 现在就是想作为时序数据库里的数据输入用 echarts 显示变化趋势,正常秒级就行了,现在如果秒级的话基本都是 0,所以只能采样再细一点。
|
4
Meridian 2019-09-23 09:19:38 +08:00
zabbix ?
netdata ? |
5
Eds1995 2019-09-23 09:21:36 +08:00
看看 twitter/rezolus( https://github.com/twitter/rezolus) 这个,rust 写的
|
6
retanoj 2019-09-23 09:25:42 +08:00 via iPhone
|
7
lewin5 OP @retanoj 因为主要是想体现我们数据库中 query 查询时系统参数的一些变动和 mysql 中查询时的一些对比,如果都是 0,图表显示就不友好,所以才想细化,把过程中的一些波动体现出来。
|
9
optional 2019-09-23 10:08:49 +08:00
量子物理:你的测量行为会改变目标的状态哦
|
10
Mogamigawa 2019-09-23 10:12:26 +08:00
我记得当下的普通计算机能检测到的最短时间间隔是 2 纳秒, 取决于内存频率.
|
12
Leigg 2019-09-23 12:12:44 +08:00 via Android
没意义
|
13
reus 2019-09-23 12:54:00 +08:00
@lewin5 就算能做到,高频监控占用的负载也会极大影响系统本身,如果想要测量性能,可以采用执行多次再取平均值的方法,或者看看有没有内部的数据可以获取,反正一毫秒获取整体的 cpu 和内存是错误做法。
|
14
Harv 2019-09-23 16:46:48 +08:00
额...网上应该不少监控 CPU 占用率、MEM 占用率的源码啊,自己封装下不就好了?就改里面的采样时间
|
15
liyunbo 2019-09-23 19:29:41 +08:00 via Android
top -d 0
这个可以吗 就可以实时监控,不过 cpu 负载立马飙升。 不知道能不能监测出来你的数据变化。 或者有没有人知道,top -d 0.01 ,是不是 1 毫秒刷新一次 |
16
liyunbo 2019-09-23 19:38:38 +08:00 via Android
|
17
purplewall 2019-09-25 15:51:23 +08:00
asm("rdstc":"=a"(low),"=d"(high))
|