在Linux系统操作中,有时需要查询cpu的用法率,这就需要用到Linux命令了,Linux查询cpu用率的命令主要有4个,即TOP、vmstat、mpstat和prstat命令,一块儿认识下吧。
1.TOP
用权限:所有用户
用方法:TOP [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
说明:即时显示process的动态
d :改变显示的更新速度,或是在交谈式指令列( interactive command)按s
q :没任何延迟的显示速度,假如用户是有superuser的权限,则TOP将会以最高的优先序实行
c :切换显示模式,共有两种模式,一是只显示实行档的名字,另一种是显示完整的路径与名字S :累积模式,会将己完成或消失的子行程( dead child process )的CPU time累积起来
s :安全模式,将交谈式指令取消,防止潜在的危机
i :不显示任何闲置(idle)或无用(zombie)的行程
n :更新的次数,完成后将会退出TOP
b :批次档模式,搭配n参数一块用,可以用来将TOP的结果输出到档案内
范例:
显示更新十次后退出;
TOP -n 10
用户将不可以借助交谈式指令来对行程下命令:
TOP -s
将更新显示二次的结果输入到名字为TOP.log的档案里:
TOP -n 2 -b 《 TOP.log
另附一个命令介绍linux traceroutewindows tracert两个命令相当,跟踪互联网路由
2.vmstat
正如大家之前讨论的任何系统的性能比较都是基于基线的,并且监控CPU的性能就是以上3点,运行队列、CPU用率和上下文切换。以下是一些对于CPU非常常见的性能需要:
1.对于每个CPU来讲运行队列不要超越3,比如,若是双核CPU就不要超越6;
2.假如CPU在满负荷运行,应该符合下列分布,
a) User Time:65%~70%
b) System Time:30%~35%
c) Idle:0%~5%
3. mpstat
对于上下文切换要结合CPU用率来看,假如CPU用满足上述分布,很多的上下文切换也是可以同意的。
常见的监视工具备:vmstat, TOP,dstat和mpstat.
# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 104300 16800 95328 72200 0 0 5 26 7 14 4 1 95 0
0 0 104300 16800 95328 72200 0 0 0 24 1021 64 1 1 98 0
0 0 104300 16800 95328 72200 0 0 0 0 1009 59 1 1 98 0
r表示运行队列的大小,
b表示因为IO等待而block的线程数目,
in表示中断的数目,
cs表示上下文切换的数目,
us表示用户CPU时间,
sys表示系统CPU时间,
wa表示因为IO等待而是CPU处于idle状况的时间,
id表示CPU处于idle状况的总时间。
dstat可以给出每个设施产生的中断数:
# dstat -cip 1
----total-cpu-usage---- ----interrupts--- ---procs---
usr sys idl wai hiq siq| 15 169 185 |run blk new
6 1 91 2 0 0| 12 0 13 | 0 0 0
1 0 99 0 0 0| 0 0 6 | 0 0 0
0 0 100 0 0 0| 18 0 2 | 0 0 0
0 0 100 0 0 0| 0 0 3 | 0 0 0
大家可以看到这里有3个设施号15,169和185.设施名和设施号的关系大家可以参考文件/proc/interrupts,这里185代表网卡eth1.