CPU使用率与CPU负载的不同
CPU负载是指处于TASK_RUNNING状态的进程个数(简单期间,就描述为进程个数),TASK_RUNNING状态的进程包括正在运行的进程,以及处于排队状态,等待运行的进程!
系统的CPU使用率是指在一段时间内,CPU用在处理正常任务上的时间百分比,与正常任务相对应的是CPU处于IDLE状态,即没有任务可以运行
进程CPU使用率都是通过一段时间计算出来的,如1分钟,2分钟等,只有在一段时间内才有意义。表明在这段时间内,这个进程占用的CPU时间是多少。多核下的CPU使用率比较特殊,有可能会高于100%,即进程分为好几个线程,同时占用好几个core在执行,因此会出现350%这样的情况(4core,该进程占用了7/8的处理器时间)
CPU负载是指处于TASK_RUNNING状态的进程个数(简单期间,就描述为进程个数),TASK_RUNNING状态的进程包括正在运行的进程,以及处于排队状态,等待运行的进程!
系统的CPU使用率是指在一段时间内,CPU用在处理正常任务上的时间百分比,与正常任务相对应的是CPU处于IDLE状态,即没有任务可以运行
进程CPU使用率都是通过一段时间计算出来的,如1分钟,2分钟等,只有在一段时间内才有意义。表明在这段时间内,这个进程占用的CPU时间是多少。多核下的CPU使用率比较特殊,有可能会高于100%,即进程分为好几个线程,同时占用好几个core在执行,因此会出现350%这样的情况(4core,该进程占用了7/8的处理器时间)
在LINUX中,有两种CPU使用率表示形式(只有在多核的情况下才有区别),即IRIX MODE(每个CPU上的使用率加起来,有可能高于100%)和SOLARIS MODE(每个CPU上的使用率加起来,再除以CPU个数,低于100%,不过方便进程之间的比较)
CPU usage The task's share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time. In a true SMP environment, if 'Irix mode' is Off, top will operate in 'Solaris mode' where a task's cpu usage will be divided by the total number of CPUs. You toggle 'Irix/Solaris' modes with the 'I' interactive command.
这篇文章讲的比较好
http://stackoverflow.com/questions/1032357/comprehending-top-cpu-usage