性能调试---(一)性能分析准则---(二)性能分析工具

性能调试---(一)性能分析准则---(二)性能分析工具

1:系统性能管理
2:系统管理员的使命
3:资源与瓶颈
4:影响系统性能的因素
5:系统性能调试的一般原则

系统性能管理

要对系统进行性能分析和调试,其前提条件是知道好的性能是什么含义,一般我们可以从以下两个角度来衡量系统性能状态:

1)响应时间(Response Time)
从用户的角度来看,系统处于良好的性能状态是指系统能够快速响应用户的请求,即系统响应时间短。
具体地说,响应时间是指发出请求的时刻到用户的请求的相应结果返回用户的时间间隔。

2)吞吐量(Throughput)
从系统管理员角度来看,系统的吞吐量成为系统处于良好的性能状态的指标。
具体地说,吞吐量是在给定时间段内系统完成的交易数量。即系统的吞吐量越大,说明系统在单位时间内完成的用户或系统请求越多, 系统的资源得到充分利用。

系统管理员的使命

一般地,系统管理员的主要功能为:

Making the system available to others
Monitoring the usage of the system
Maintaining a certain level of performance
Planning for future processing needs


资源与瓶颈


要使系统处于良好性能状态,就必须让所有的系统资源协调工作。

1)系统资源(System Resource)
计算机组成十分复杂,但关键的系统资源不外如下这些:

CPU
内存
磁盘
输入输出,尤其是网络和串行通信
2)瓶颈(Bottleneck)

在计算机的众多资源中,由于系统配置的原因,某种资源成为系统性能的瓶颈是很自然的事情。
当所有用户或系统请求对某种资源的需求超过它的可用数量范围时,我们称这种资源成为瓶颈。
当系统出现瓶颈时,消除瓶颈是方法通常有两种:
增加成为瓶颈的资源的数量;
减少请求的数量;


影响系统性能的因素

应该说,影响系统性能的因素很多,但归纳起来主要有以下几个因素:

硬件因素:CPU个数够不够?内存够不够?等等
操作系统:操作系统的配置是否合理?
应用软件:应用系统设计得如何;
人的因素:操作人员是否有充分的培训,以完全懂得操作系统?
经常性的变化因素:用户的需求是否经常性变化?用户对系统负载的要求是否经常性变化?


系统性能调试的一般原则


对系统进行性能调试必须遵循一定的原则,这些原则都经验丰富的工作师经过多年的实践总结出来的。

性能调试是一件严肃的事情,不要对系统的各种参数进行随意的改动;
一次只对某个领域进行性能调试,例如对CPU的使用情况进行分析;
每次只改动一个设置;
每次对系统性能进行分析时,至少使用两种性能分析和调试工具;
经验是最好的分析和调试工具;
知道什么情况下该停止操作;
一般地,我们有以下四条性能调试的规则:

1)当你回答一个关于计算机系统性能的问题时,最初的回答总是“可能吧,视具体情况而定(It depends)”。

当然这个回答不会让用户满意的,因此,我们必须进一步可能对系统性能产生影响的各种因素进行分析, 它们所有作用是什么,起多大的作用。

2)性能分析和调试总是存在着折衷。

当系统管理员试图对计算机系统的性能进行调整时,们可能需要修改系统参数,或修改应用。然而,性能调试 不存在唯一回答或最优答案。

比如:tuning to improve memory utilization may degrade file system performance;Choosing RAID disk comfigurations for data integrity may be less expersive than altternative mirroring solutions that often improve performance.It is may be more cost-effective to purchase a CPU upgrade rather than spend days or weeks analyzing how the application could be changed to improve performance.

3)在分析系统性能的同时,系统性能将会受到影响。

由于在进行系统性能分析时,性能分析工具本身将会占用一定的系统资源,如CPU资源、内存资源等等。我们必须注意到这点, 即分析工具本身运行可能会导致系统某方面的资源瓶颈情况更加严重。

4)只用一种工具是无法全面、正确地分析出系统的资源瓶颈所在。




1:性能分析工具综述
2:如何知道系统安装了哪些性能分析工具?
3:SAR
4:time和timex
5:iostat
6:vmstat
7:GlancePlus


性能分析工具综述


目前,对系统进行性能调试的工具有很多,这些可以两大类:一类是标准的分析工具,即所有的UNIX都会带的分析工具; 另一类是不同厂商的UNIX所特有的性能分析工具,比如HP-UX就有自己的增值性能分析工具。

标准的分析工具,即所有的UNIX都会带的分析工具:

sar
iostat
vmstat
time
ps
bdf
top
ipcs
uptime
HP-UX自己的增值性能分析工具:

glance/gpm
puma
xps
按性能分析工具的用途来说,它可以分为:

CPU的使用情况:sar,time,top,ps,puma,xps
内存的使用情况:vmstat,ipcs
文件系统状态:dbf,iostat,sar,swapinfo,nfsstat
I/O子系统状态:iostat
网络性能:netstat
按分析时间点来分,性能分析工具可以分为:

日志型分析工具,如puma,xps,它们将在对系统在某一段时间的运行情况进行取样,然后得出某此结果。这种分析工具非常适合于 针对那些时断时续发生的问题进行分析,因为通过取样,可以得出结论;
实时型分析工具,如glance,它们又称“快照型分析工具”,即它们将实时取出系统运行环境的数据,这种分析工具非常适合于 那些在分析工具正在运行时发生的问题,或一直发生的问题。

如何知道系统安装了哪些性能分析工具?


想知道系统中安装了何种性能分析工具,运行命令:

#/opt/perf/perfstat -v

SAR-System Activity Reporter


顾名思义,SAR工具将对系统的当前状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是:

System V-based,在很多的UNIX版本中都存在;
可以连续对系统取样,获得大量的取样数据;
取样数据和分析的结果都可以入文件;
自己所需的负载很小
SAR也有一个致命的不足,这就是:SAR不能对某个进程进行深入分析,它仅是一对系统的整体情况进行分析。

SAR的语法为:

#sar [-ubdycwaqvmAMS] [-o file] t [n]:每隔t秒取样一次,共取样n次,其中-o file表示取样结果将以二进制形式存入文件file中;
#sar [-ubdycwaqvmAMS] [-s time] [-e time] [-i sec] [-f file]:表示从file文件中取出数据,如果没有指定-f file,则从标准数据文件/var/adm/sa/sadd取数据,其中dd表示当前日子。另外, -s time表示起始时间;-e time表示停止时间;-i sec表示取样的时间间隔,如果不指定则表示取文件中所有的数据。
对[-ubdycwaqvmAMS]的解释请参阅相关的系统分析领域,如-u表示对CPU的分析;-A表示汇总所有数据,即等于-ubdycwaqvm,-M表示对多个CPU环境中每个CPU都进行各自的分析, 一般它与-q和-u联合使用,以对每个CPU的使用情况进行分析
从前面的命令语法中可知,sar可以从一个文件中读取性能数据,这个文件可以通过sar来产生(如sar -o file 2 3),也可以通过其他的命令来产生,具体地说,可以通过以下几个命令来产生:

#/usr/lbin/sa/sadc [t n] [ofile]:以t秒为时间间隔,共取样n次,所有数据存入文件ofile。如果我们要对系统进行分析,则通常的做法是:第一步,mkdir /var/adm/sa;第二步,chown adm:adm /var/adm/sa; 第三步,/usr/lbin/sa/sadc /var/adm/sa/sa`date +%d`,它会在/var/adm/sa目录下创建一个sadd文件,其中dd表示当前日期,这个命令将对以前取样进行清零。
运行shell命令:#/usr/lbin/sa/sa1 [t n]:表示以t秒为时间间隔,共取样n次,所有数据存入文件/var/adm/sa目录下的sadd文件,其中dd表示当前日期;
运行shell命令:#/usr/lbin/sa/sa2 [-ubdycwaqvmA] [-s time] [-e time] [i sec]:
一个通过crontab命令来设置定时执行的方案:

0 * * * 0,6 su adm -c "/usr/lbin/sa/sa1":表示以adm用户执行sa1,每个星期的日、六两天是每小时执行一次sa1命令;

0 8-17 * * 1-5 su adm -c "/usr/lbin/sa/sa1 3 3"

0 8-17 * * 1-5 su adm -c "/usr/lbin/sa/sa1"


在通过sadc或sa1、sa2等后台命令收集数据时,我们必须注意如下两点:

/usr文件系统的空闲空间够不够
本月数据将覆盖上月所取样的数据,因此,在系统即将进入下一个月时,必须对本月数据进行备份;
sa1和sa2是两个shell命令,在目录/usr/lbin/sa下,我们可以修改这两shell文件,以改变缺省的取样方法。


time和timex


TIME

Time命令可以汇报出执行某条命令所花的时间。它的输出包括:实际时间,用户时间和系统时间。

它的语法:#time ls

TIMEX

和time一样,timex可以汇报出执行某条命令所花的时间,不过它可以给出更多的信息。

选项-s:prints sar data for the interval in which the program ran.

option -p: List process accounting records for command and all its children.This option works only if the process accounting software is installed and /usr/lib/acct/turnacct has been invoked to create /var/adm/pacct

iostat-I/O statistics Reporter


iostat(输入/输出统计)工具将对系统的磁盘操作活动进行监视,它的输出结果会比sar -d的输出结果更有用。它的特点是:

Berkeley-based,在很多的UNIX版本中都存在;
汇报磁盘活动统计情况,同时也会汇报出终端和CPU使用情况;
looks at information on a per-spindle basis
和SAR一样,它也有一个致命的不足,这就是:iostat不能对某个进程进行深入分析,它仅是一对系统的整体情况进行分析。

iostat的语法为:

iostat [-t] [interval [count]]
interval: Display successive lines which are summaries of the last interval seconds. The first line reported is for the time since a reboot and each subsequent line is for the last interval only.
count: Repeat the statistics count times.
-t: Report terminal statistics as well as disk statistics.


vmstat-Virtual Meomory Statistics


vmstat工具将对系统的虚拟内存、进程、CPU活动进行监视,同时它也对磁盘和forks和vforks操作的个数进行汇总。它的特点是:

Berkeley-based,在很多的UNIX版本中都存在;
汇报虚拟内存、进程、CPU活动统计情况,同时也会汇报出磁盘活动情况和forks和vforks操作的个数;
和iostat一样,它也有一个致命的不足,这就是:vmstat不能对某个进程进行深入分析,它仅是一对系统的整体情况进行分析。

vmstat的语法为:

vmstat [-dnS] [interval [count]]
vmstat -f | -s | -z

GlancePlus


GlancePlus是HP公司的性能分析工具,它是一个联机性能分析和诊断工具,用于监控正在发生的系统活动情况。它的特点是:

联机性能分析和诊断;
监控系统资源的使用情况;
多屏幕输出;
带有联机帮助;
进程阀值识别和报警,这个阀值可以基于被监控的进程、资源的利用率、用户、进程名或者终端名;
和前面介绍的其他性能分析工具,如:SAR,iostat,vmstat等相比,GlancePlus有一最大好处,这就是:GlancePlus不仅能对系统的整体情况进行分析,而且还可以对某个进程进行深入分析。

GlancePlus所有监控的系统资源主要有以下这些,应该说,它们已经包括了主要的系统资源。

CPU、磁盘、内存和交换区的整体使用情况;
全局进程的活动情况;
CPU的详细使用情况;
内存的详细使用情况;
文件系统、设备和逻辑卷的磁盘输入/输出;
磁盘队列和长度;
交换区的详细使用情况;
系统表的使用情况;
单个进程的活动情况;
GlancePlus的运行形式有两种:

图形方式:#/opt/perf/bin/gpm,或以后台方式运行#gpm&;不过,我们必须先设置环境变量DISPLAY,因为它是图形输出的目的地,比如:export DISPLAY=主机名(IP地址):0.0;如果是工作站telnet别的主机上,则本工作站还要运行#xhost +,表示别的机器上输出可以到本工作站;
终端方式:#/opt/perf/bin/glance
GlancePlus的界面主要有两部分,上面部分是系统资源的整体使用情况,下面部分则按不同的资源的详细使用情况。

GlancePlus的界面的上面部分的详细说明,其中字母表示谁用了资源,而字母之间的长度资源占用率。

CPU的利用率:S-系统CPU利用率,U-用户CPU利用率,R-实时CPU利用率,N-nice CPU利用率,A-negative-nice CPU利用率;
磁盘的利用率:F-文件系统I/O,V-虚拟内存I/O
内存的利用率:S-用于系统代码和数据的内存,U-用于用户代码和数据的内存,B-用作缓存的内存
交换区的利用率:U-正在使用的交换区,R-预留的交换区
前面讲到,GlancePlus是一个联机分析诊断工具,其实,GlancePlus还可以与MeasureWare Agent一起使用,MeasureWare Agent将可以 在一段时间内帮助GlancePlus收集基本数据,然后由GlancePlus进行分析。

Glance可以运行在HP-UX,Solaris和AIX上。

与其他的工具相比,Glance占用的系统资源会更多一些。

通常情况下,启动工具的命令的语法如下:

#glance [-j interval][-p dest][-f dest][maxpagers n][-command][-nice n][-nosort][lock][]

其中,各选项的含义为:

-j :指定数据刷新的时间间隔;
-p :使得结果送到打印机队列;
-f :enbles printing to a file;
-maxpages :limits the number of pages to be printed;
-command:selects the inital metric screen;
-nice :nice value at which glance runs;
-nosort:don't sort processes on the screen;
-lock:locks glance into memory
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值