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

来源:互联网 发布:开淘宝店怎么弄 编辑:程序博客网 时间:2024/05/29 16:19
UNIX中文宝库    http://www.douzhe.com 

2005年04月05日   作者:   转自:    点击: 2167 
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
原创粉丝点击