请教/stat数据怎么计算cpu利用率?
两个问题:1。/proc/stat中的关于cpu利用率:
cpu139242 3367 14152 16989586
cpu0 139242 3367 14152 16989586
我知道这四个数据分别是usernice system idle的,但是怎么算利用率呢?
2。这个/stat文件是怎么更新的?多长时间写入一次数据呢?
谢谢 我想这个很容易获得吧,内核里都有相关的统计变量,只不过我不知道linux的具体变量名称是什么。 :oops: :(说具体点就好了 can u find iostat or mpstat code to read it? u will gain more.
if u get
user1 system1 nice1 idle1
user2 system2 nice2 idle2
then (idle2-idl1)/[(idle2-idle1)+(user2-user1)+(nice2-nice1)+(system2-system1)] is the idle rate, am i right?
when u read stat, it will check kernel variables. the value in kernel variables are kept changed. user1 system1 nice1 idle1
user2 system2 nice2 idle2
这是指两次测得的值么?如果我想测上一秒的cpu利用率,是不是就是隔一秒读一次stat得到上述的值,然后用你说的方法就可以了?
cpu 139242 3367 14152 16989586 里面的数字到底什么意思啊?
是不是从你上次查看stat文件(因为你不是说查看一次改变一次么?)到这次的cpu时间的统计?
谢谢指点。 yes, u read it every one second and check the difference.
it change when u read it. but i do not mean it is the value since last read, it is teh value since u boot. 这个/stat文件是怎么更新的?多长时间写入一次数据呢?
---files in proc fs will not exist util we want to read it. nod, read the procfs doc can let u know how it works
页:
[1]