当前位置: 技术问答>linux和unix
top命令CPU资源显示有问题
来源: 互联网 发布时间:2016-08-05
本文导语: 怎么两个进程占用的CPU加起来大于100%? cclplus 占用CPU96.5%, firefox占用CPU53.6%,这两个加起来要大于100%啊,这个是怎么回事? | 严重关注一下, 早就注意到有这个问题 但是发现从来没有人能把它说清楚 ...
怎么两个进程占用的CPU加起来大于100%?
cclplus 占用CPU96.5%, firefox占用CPU53.6%,这两个加起来要大于100%啊,这个是怎么回事?
cclplus 占用CPU96.5%, firefox占用CPU53.6%,这两个加起来要大于100%啊,这个是怎么回事?
|
严重关注一下, 早就注意到有这个问题 但是发现从来没有人能把它说清楚 我之前也是分析过这种现象, 也是没有找到根源, 分享一下我之前的分析:
top单个进程显示的原理是计算top刷新时间内(默认是3秒)这个进程消耗的cpu时间占3*100*irix的百分比, 在top源代码里面100表示系统的时间片, 我怀疑这个地方可能有问题可能, 因为现在一般的PC时钟都是1000了, irix是1, 如果在top运行时按下shift+I则为2, 这时显示的CPU%会除以2, 之所以有
cclplus 占用CPU96.5%, 就是因为top从/proc/4517/stat每隔3秒读了一次, 然后根据这个值里面的[utime1+stime1-(utime2+stime2)]/(3*100)算出来的.就是说/proc/下面的进程信息提供的信息不准确, 而top只根据自己的定义去/proc下面去数据来处理, top本身是没有问题的.
我只能说明产生这个现象的原因, 但是不知道根本原因, 个人认为这可能top在SMP环境下的bug, 还有可能是kernel本身的bug, kernel的调度变的灵活之后对于进程时间的统计有问题,
希望有高人能说清楚,
top单个进程显示的原理是计算top刷新时间内(默认是3秒)这个进程消耗的cpu时间占3*100*irix的百分比, 在top源代码里面100表示系统的时间片, 我怀疑这个地方可能有问题可能, 因为现在一般的PC时钟都是1000了, irix是1, 如果在top运行时按下shift+I则为2, 这时显示的CPU%会除以2, 之所以有
cclplus 占用CPU96.5%, 就是因为top从/proc/4517/stat每隔3秒读了一次, 然后根据这个值里面的[utime1+stime1-(utime2+stime2)]/(3*100)算出来的.就是说/proc/下面的进程信息提供的信息不准确, 而top只根据自己的定义去/proc下面去数据来处理, top本身是没有问题的.
我只能说明产生这个现象的原因, 但是不知道根本原因, 个人认为这可能top在SMP环境下的bug, 还有可能是kernel本身的bug, kernel的调度变的灵活之后对于进程时间的统计有问题,
希望有高人能说清楚,
|
第三行才是CPU状态:
CPU(S):user占74.5%,syster占2.8%
CPU(S):user占74.5%,syster占2.8%
|
首先看看你是不是双核CPU,或者多核的
|
(96.5+53.6)/2=75.05接近74.5,估计是双核的机器。
|
楼主的CPU的确是双核
另外 查看CPU使用率或者内存使用率等 用vmstat命令吧 命令执行后的最后一域是CPU信息 显示的结果比较容易懂
另外 查看CPU使用率或者内存使用率等 用vmstat命令吧 命令执行后的最后一域是CPU信息 显示的结果比较容易懂
|
应该是多核的原因……………………………………
|
id22.6:空闲CPU
|
你看的%CPU表示:上次更新到目前的CPU时间占用百分比
|
是不太对 ,不知道是不是和有一个僵尸进程有关系
关注ing
关注ing
|
贴一下
# cat /proc/cpuinfo
# cat /proc/cpuinfo
|
不太好理解,表示一下关注
|
是的.