三 性能调试---CPU性能分析( 二 )



进程何优先级

每个进程都有自己的优先级;
实时优先级:-32~127,一个进程如果想以实时优先级运行,则必须用命令#rtprio来设置;
分时系统优先级:128~177;
分时用户优先级:178~251;
优先级:252~255 are used by the system as virtual memory management prioritIEs for process deactivation.
分时进程在初始优先级是由系统分配的,为一个定值 。用户可以通过改变进程的nice值来改变分时进程的优先级 。因为进程会随着它的执行,将以nice值来降低它的优先级,当 它在等待执行时,又将以nice值来增加其优先级 。nice值的系统缺值为20 。
在系统性能分析过程中,我关心不仅仅在完成一个进程耗时多少,还包括时间花在哪以及它的时间多少 。


衡量CPU闲忙程度的指标


要分析系统的CPU资源是否够的前提谁占用了CPU资源,占用了多少,时间多长 。下面是一些衡量CPU闲忙程度的经用指标:

1)用户使用CPU的情况

CPU运行常规用户进程
CPU运行niced process
CPU运行实时进程
2)系统使用CPU的情况

用于系统调用
用于I/O管理:中断和驱动
用于内存管理:paging and swapping
用于进程管理:context switch and process start
3)WIO:由于进程等待I/O而使CPU处于空闲状态的比率,这些I/O主要指block I/O,raw I/O,VM paging/swapins;

4)CPU的空闲率,即除了上面的WIO以外的空闲情况;

5)CPU用于上下文交换的比率(Context Switch CPU utilization)

6)nice

7)real-time

8)运行进程队列的长度,即处于可运行状态的进程个数的大小,不过我们关心的是这些在等待CPU调度执行时所花的时间;

9)平均负载(load average)


CPU资源成为系统性能的瓶颈的征兆


CPU就像人的大脑,完成各种交给它的任务 。如果任务太多,CPU就要忙不过来,它的运行效率就要下降 。就像人生病会有一典型症状一样,当CPU资源 成为系统性能的瓶颈时,它也有一些典型的症状:

很慢的响应时间(slow response time)
CPU空闲时间为零(zero percent idle CPU)
过高的用户占用CPU时间(high percent user CPU)
过高的系统占用CPU时间(high percent system CPU)
长时间的有很长的运行进程队列(large run queue size sustained over time)
processes blocked on prority
必须注意的是,如果系统出现上面的这些症状并不能说一定是由于CPU资源不够,事实,有些症状 的出现很可能是由于其他资源的不足而引起,如内存不够时,CPU会忙内存管理的事,这时从表面上,CPU的利用是100%,甚至显得不够,如果据此就简单地认为增加CPU就可以解决问题是大错特错了 。

因此,还是那句话,必须用不同的工具、从不同的方面对系统进行分析后,才能做出结论,即使这样,经验将 起到不可替代的作用 。


哪些进程是占用CPU资源的大户?


在操作系统中,并不是所有的进程都以同样的方式使用CPU资源 。通常情况下,有些进程需要比其他进程更多的CPU时间片才能顺利地完成任务 。下面是一些典型的占用CPU资源的大户:

进程创建(process creation)
终端字符进程(teminal character processes(MUX- and LAN-based)
计算密集型进程和实时进程
X-终端和X-服务器进程(X-terminals and X-servers)


利用SAR工具分析CPU的利用率


利用SAR进行CPU的利用率分析的命令形式:

#sar -u,这时数据是通过sa1在后台定时生成;
#sar -u 5 100,每隔5秒取样一次,共取100次;
SAR -u:Report CPU utilization (the default); portion of time running in one of several modes. On a multi-processor system, if the -M option is used together with the -u option, per-CPU utilization as well as the average CPU utilization of all the processors are reported. If the -M option is not used, only the average CPU utilization of all the processors is reported:

推荐阅读