- 主题:怎么高效的实时查看CPU使用情况
Linux系统。
比如需要每10ms就查看一下CPU使用情况,是否高于某个阈值。这样频率查看对系统影响有点大,用什么手段可以最大可能降低影响呢?
--
FROM 36.112.69.*
人在回路的系统不需要10ms这种周期。
人是反应非常慢的生物。
【 在 wjhtingerx 的大作中提到: 】
: Linux系统。
: 比如需要每10ms就查看一下CPU使用情况,是否高于某个阈值。这样频率查看对系统影响有点大,用什么手段可以最大可能降低影响呢?
--
FROM 123.103.9.*
非实时系统的话,10ms不一定能保证,还要看调度的tick间隔是几毫秒。
每个调度周期都要执行的操作,属于(巨)高额的开销,正常都要避免。
--
修改:z16166 FROM 114.241.227.*
FROM 114.241.227.*
10ms是100Hz,不够高刷标准
【 在 lipp 的大作中提到: 】
: 人在回路的系统不需要10ms这种周期。
: 人是反应非常慢的生物。
--
FROM 121.33.160.*
所以就是要用个高优先级的实时线程去做查看啊,这样消耗就会很大
【 在 z16166 的大作中提到: 】
: 非实时系统的话,10ms不一定能保证,还要看调度的tick间隔是几毫秒。
: 每个tick都要执行的操作,属于(巨)高额的开销,正常都要避免。
--
FROM 36.112.69.*
就是需求不合理吧
一般只有profiling工具才需要干这个事情
编辑:刚查了一下,linux现在用的hrtimer做tick,精度在纳秒。10ms对应纳秒,应该问题不大。
【 在 wjhtingerx 的大作中提到: 】
: 所以就是要用个高优先级的实时线程去做查看啊,这样消耗就会很大
:
--
修改:z16166 FROM 114.241.227.*
FROM 114.241.227.*
这会对系统有影响?不可能吧。
In [9]: start = time.time()
...: for _ in range(10000):
...: with open('/proc/stat', 'r') as f:
...: f.read()
...: time.sleep(0.001)
...: print(time.time() - start)
10.862541675567627
1ms一次,htop都没见明显cpu占用,大概单核2-3%波动。
【 在 wjhtingerx 的大作中提到: 】
: Linux系统。
: 比如需要每10ms就查看一下CPU使用情况,是否高于某个阈值。这样频率查看对系统影响有点大,用什么手段可以最大可能降低影响呢?
--
修改:lvsoft FROM 180.158.52.*
FROM 180.158.52.*
print有那么快么?
【 在 lvsoft 的大作中提到: 】
In [7]: start = time.time()
...: for _ in range(1000):
...: with open('/proc/stat', 'r') as f:
...: f.read()
...: time.sleep(0.001)
...: print(time.time() - start)
1.0838007926940918
1ms一次,htop没见明显cpu占用。
【 在 wjhtingerx 的大作中提到: 】
: Linux系统。
: 比如需要每10ms就查看一下CPU使用情况,是否高于某个阈值。这样频率查看对系统影响有点大,用什么手段可以最大可能降低影响呢?
--
修改:lvsoft FROM 180.158.52.*
FROM 123.103.9.*
再读一遍代码...
【 在 lipp 的大作中提到: 】
: print有那么快么?
: In [7]: start = time.time()
: ...: for _ in range(1000):
: ...................
--
FROM 180.158.52.*
你这啥语言?
【 在 lvsoft 的大作中提到: 】
: 这会对系统有影响?不可能吧。
: In [9]: start = time.time()
: ...: for _ in range(10000):
: ...................
--
FROM 36.112.69.*