三 性能调试---CPU性能分析

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.系统性能也与这种中断发生的频率有关 。

推荐阅读