http://www.4oa.com/Article/html/5/28/403/2005/11179.html性能调试---(三)CPU性能分析内容提要:1:CPU
的体系结构和工作原理2:操作系统和进程3:衡量CPU闲忙程度的指标4:CPU资源成为系统性能的瓶颈的征兆5:哪些进程是占用CPU资源的大户?6:
利用SAR工具分析CPU的利用率7:利用SAR...
1:CPU的体系结构和工作原理
2:操作系统和进程 3:衡量CPU闲忙程度的指标 4:CPU资源成为系统性能的瓶颈的征兆 5:哪些进程是占用CPU资源的大户? 6:利用SAR工具分析CPU的利用率 7:利用SAR工具分析运行进程队列长度 8:利用SAR工具分析系统调用 9:利用time命令测试某个命令和程序的执行效率 10:利用top命令查看最耗CPU资源的进程 11:利用uptime命令查看系统整体情况 12:利用GlancePlus分析系统CPU资源利用率 13:对CPU需求密集型系统的性能调试 CPU的体系结构和工作原理 我们所说的CPU一般是指微处理器,即Microprocessor,一般地,一个CPU的主要组成部分为: CPU(central processing unit) cache:cache就是高速内存,它的存取时间一般是10-20微秒(ns),这样,CPU可以在一个时钟周期内访问一次cache;而一般的内存的 存取时间为80-90微秒(ns),它的大小对CPU的性能有很大的影响。 TLB(translation lookaside boffer):TLB是高速cache,它用于存放最近访问的虚拟地址和与其对应的物理地址对,这样TLB将可以把虚拟地址转换为物理地址。TLB是内 存中系统转换表的一个子集;TLB通常是指向一个内存页面,而不是一个内存地址;它的大小对CPU的性能有很大的影响。 coprocessor 不同的CPU,一般有不同的时钟频率和高速缓存容量。 CPU在一次时钟周期内一般可以从高速缓存内取到一个指令并执行它。因此,从理论上说,只要CPU的主频越快,单位时间内所能执行的指令则越多。目前,有 些CPU可以在一个时钟周期内执行多条指令,如PA8500可以执行4条指令。 高速缓存的大小会制约CPU的执行效率,虽然CPU主频很快,但它取不到数据,则只有空运行。因此,高速缓存的大小很重要;高速缓存又分数据高速缓存和指 令高速缓存,分别存放从内存预先取来的即将执行的数据和指令单元。 虚拟寻址 一般,系统中的虚拟地址空间要比物理地址空间大得多,例如,如果系统是64位的,则理论上,它的寻址空间可以达到2的64次幂(2**64= 18,447PB),但由于受费用的因素的影响,实际上的物理内存最大只有十几GB的内存。 每个进程都有自己的唯一虚拟地址空间,然而,进程的运行必须把虚拟地址映射到物理地址,这需要TLB、高速缓存和内存三者的配合。如果需要的信息不在内 存,则导致一个页面错。 流水线(Pipelining) TLB和高速缓存试图在一个时钟周期内给CPU提供它所需的信息,然而,这个过程是100%的利用率,对CPU来说,它必须先用一个时钟周期去取下一个指 令,再一个时钟周期去执行这条指令,这样,CPU的利用率也只有50%。为了让CPU更忙,通常的做法是,采用流水线的方法。如PA8500是采用7个步 骤的流水线。 操作系统和进程 HP-UX一个多用户、多任务的UNIX操作系统。它的性能依赖于用户数的多少、用户任务的类型、硬/软件件的配置。 HP-UX有两种运行级别: 用户级:系统用户可以与操作系统进行交互操作,如运行应用和系统命令。用户级通过系统调用接口访问内核级。 内核级:操作系统自动运行一些功能,它们主要对硬件进行操作。 在操作系统中,用户程序是以进程方式运行。进程的状态有以下几种: SRUN SSLEEP SZOMB SIDL SSTOP CPU的调度 一旦进程所需的数据调入内存后,它将等待CPU调度者来分配CPU时间。一般,在HP-UX中,每个进程都可以得一个 固定的时间片来运行,这个时间片的长度为十分之一秒(1/10秒)。 由于HP-UX是一个多任务的操作系统,它需要一种手段来进程的执行次序,这就是中断。在系统中,时钟中断处理器是用来处理时钟中断的系统软件。具体地 说, 它将收集系统和accounting statistics and does context switching.系统性能也与这种中断发生的频率有关。 进程何优先级 每个进程都有自己的优先级; 实时优先级:-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资源不够 |
