AIX 性能命令分析说明

来源:百度文库 编辑:神马文学网 时间:2024/04/29 05:39:53

常用命令 软件包

CPU:vmstat、iostat、sar、bos.acct

I/O:topas、svmon、filemon、fileplace、bos.perf.tools

MEMORY:vmtune、schedtune、bos.adt.samples

NETWORK:netstat、bos.net.tcp.client

vmstat报告CPU与内存信息

如下例所示:

kthr memory page faults cpu

----- -------------- ------------------------- ------------ -----------

r b avm fre re pi po fr sr cy in sy cs us sy id wa

2 11 1116402 0 0 19 24 583 1328 0 1514 10956 6379 17 4 45 34

0 35 1117232 0 0 15 75 1908 4207 0 2675 9350 18901 10 8 0 82

1 45 1118296 0 0 51 108 1873 3580 0 2298 8699 15324 9 8 0 83

0 22 1116890 0 0 78 19 830 1577 0 1836 8530 3891 7 6 0 87

13 29 1117030 0 0 5 26 1304 2737 0 1924 7619 9908 7 7 0 86

内核线程

r     表示内核中运行的线程数,如果其数超过系统的CPU个数,则说明等待进程越多

b    表示内核中等待的线程数,由于挂起或IO等待

内存列

pi 列    表示每秒钟从Paging Space置换到内存的页数。

po列    表示每秒钟从内存置换到Paging Space的页数。

如果这两列持续大于5,则系统的性能瓶颈很可能是内存不足,而导致交换频繁。

fr列      表示每秒钟页面置换算法释放的页数。

sr列     表示每秒钟页面置换算法检查的页数。

故障列

in 设备中断次数

sy 系统调用次数

cs 内核线程上下文交换,即时间片用完后,再轮到时的上下文计算,如果太高,则要仔细观察

内存信息

avm与free两项分别表示了物理内存的活动页数(active Memory)与可用页数(每页4096bytes),其大小可用其值/256获得MB数。

其中free数如果持续为0或很低则预示内存不足,此时可能会导致大量的页面交换,而在CPU中显示为wa很高,此值的多少也与vmtune中的-f -p设置有关。

CPU信息

在以上信息中,关于CPU是的后四列:

id高表示系统空闲,us、sy分别表示用户和系统进程CPU占用,wa表示IO等待时间

如果us与sy之和持续超过90%时,CPU出现了瓶颈。

如果wa长期很高>50,则表示IO太忙,具体看是应用IO多,还是交换分页多,如果是后者,则显示内存不足。如果是前者,则应关注应用的IO性能状况,优化应用与磁盘设备。

sar命令优势

sar可以针对SMP系统来分别查看CPU使用情况

sar -P ALL 3 2

AIX testhost 1 5 0050C33A4C00 06/28/05

17:30:02 cpu %usr %sys %wio %idle

17:30:05 0 38 4 43 15

1 32 3 49 16

2 51 3 44 2

3 53 3 42 2

- 44 3 44 9

17:30:08 0 35 1 46 18

1 18 3 70 9

2 24 2 60 14

3 16 1 81 3

- 23 2 64 11

Average 0 36 2 45 16

1 25 3 59 13

2 38 3 52 8

3 34 2 62 2

- 33 3 54 10

以上显示了一个单CPU系统的显示,

sar也可以查看系统调用情况

sar -c 3 2

AIX test 1 5 0050C33A4C00 06/28/05

17:31:00 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s

17:31:03 5738 484 439 0.00 0.00 952729 1073997

17:31:06 3365 149 266 0.00 0.00 11620 930150

Average 4553 317 352 0.00 0.00 482957 1002193

svmon使用

svmon可以查看内存的详细使用情况,含分页

svmon -G   -i 5 2

                size       inuse        free         pin     virtual

memory       2097136     2096903         233      107570     1622941

pg space     1507328     1400132

                work        pers        clnt       lpage

pin           107324         246           0           0

in use       1236897      860006           0           0

                size       inuse        free         pin     virtual

memory       2097136     2096212         924      107570     1623787

pg space     1507328     1400135

                work        pers        clnt       lpage

pin           107324         246           0           0

in use       1237139      859073           0           0

其中memory行显示了内存总量,使用量,钉入量和虚拟总量

pg space行显示了分面空间的使用量

pin行显示了正在用的钉入量,永久钉入量和客户量

in use显示了总内存的工作页面量,永久页面量,客户端页面量

如想将oracle进行lock_sga设置,可以查看PIN值来确认是否生效

要使pin生效必需vmtune -S 1

svmon -U oracle可以查看oracle用户的用量

svmon -U oracle

===============================================================================

User                                  Inuse       Pin      Pgsp   Virtual   LPageCap

oracle                              1897660      3007   1210399   1459736          N

计算出其大小为          7412M 11M 4728M   5702M

...............................................................................

SYSTEM segments                       Inuse       Pin      Pgsp   Virtual

                                       3236      2089      1935      4889

                                       13M       8M         8M     

...............................................................................

EXCLUSIVE segments                    Inuse       Pin      Pgsp   Virtual

                                    1893883       918   1208317   1453304

                                       7398       4M

SHARED segments                       Inuse       Pin      Pgsp   Virtual

                                        541         0       147      1543

                                        2M

在以上表中SYSTEM是所有系统共用段,EXCLUSIVE是此用户专用段,SHARED段是共享段

svmon -C oracletest

可以统计oracletest命令的所有内存使用情况

在其中也分为SYSTEM,EXCLUSIVE,SHARED三段,在其中将会发现SHARED段很大,那是因为其与其它oracle进程共用的结果

在整个输出中,其类型分为

work 表示进程和内存共享段的区域

perm 表示文件,目录,日志,大文件等使用段,其代表了文件操作所用内存的值

clie 表示NFS,CDROM等文件系统使用段

svmon -P

可以查看所有进程的内存使用情况,加上PID可以查看单个进程的内存使用情况

能过此种方式,可以标识所用命令

通过上述命令获得的命令名,再通过svmon -C来查看其专用内存段,进行对比,可以区分出不同命令所用内存多少,对oracle不同进程之间的分析有用

磁盘IO

iostat 可以查看时间段内的CPU状况和磁盘状况

tty:       tin          tout    avg-cpu:   % user     % sys      % idle     % iowait

           0.0          55.3               11.6       2.0        20.4       66.0     

Disks:         % tm_act      Kbps       tps     Kb_read    Kb_wrtn

hdisk0           24.9      153.0       38.3        1236        296

hdisk1           31.3      193.8       48.7        1656        284

dac0              0.0      2969.1      179.1       11564      18164

hdisk2          100.0      2969.1      179.1       11564      18164

cd0               0.0        0.0        0.0           0          0

其中% tm_act是指活动时间,kbps是在统计时间内所有Kb_read与Kb_wrtn之和除以时间的值,即每秒传输的字节数

如果% tm_act常过70%却只有很低的Kbps,系统可能是有比较多的LV碎片或文件碎片,当都高时则系统正常。

tps表示每秒的IO数,不同的磁盘系统其可承受的IO数不同。

sar -d 10 2也可以查看IO情况

12:11:16      device     %busy     avque     r+w/s    blks/s    avwait    avserv

12:11:26      hdisk0      34       1.0        50       201       0.0       0.0

              hdisk1      41       0.0        64       259       0.0       0.0

                dac0       0       0.0       331      4197       0.0       0.0

              hdisk2      99       5.0       331      4197       0.0       0.0

                 cd0       0       0.0         0         0       0.0       0.0

其中的%busy对应的% tm_act

avque表示等待IO对列数,其值很高则预示着磁盘有较大瓶颈

r+w/s对应tps,blks/s是按0.5Kbytes/s计算的传输速度

sar -d 最大好处是可以对较长时间的值会有一个总体平均值

vmtune使用

/usr/samples/kernel/vmtune 会得出当前设置数据

vmtune:   current values:

   -p        -P         -r           -R          -f        -F        -N         -W

minperm   maxperm   minpgahead maxpgahead   minfree   maxfree   pd_npages maxrandwrt

400921   1603684        2           8         120       128       65536         0

   -M       -w       -k       -c         -b          -B            -u         -l     -d

maxpin npswarn npskill numclust numfsbufs hd_pbuf_cnt lvm_bufcnt lrubucket defps

1677709    47104    11776        1      186         224           9       131072      1

         -s               -n          -S          -L           -g            -h

sync_release_ilock   nokilluid   v_pinshm   lgpg_regions   lgpg_size   strict_maxperm

         0                0            0            0             0         0

     -t            -j               -J                -z

maxclient   j2_nPagesPer j2_maxRandomWrite   j2_nRandomCluster

1603684            32             0                   0

     -Z                   -q                     -Q                 -y

j2_nBufferPer   j2_minPageReadAhead   j2_maxPageReadAhead    memory_affinity

       512               2                     8                  0

     -V                   -i

num_spec_dataseg   spec_dataseg_int

       0                 512

PTA balance threshold percentage = 50.0%

number of valid memory pages = 2097136   maxperm=80.0% of real memory

maximum pinable=80.0% of real memory     minperm=20.0% of real memory

number of file memory pages = 847042     numperm=42.2% of real memory

number of compressed memory pages = 0    compressed=0.0% of real memory

number of client memory pages = 0        numclient=0.0% of real memory

# of remote pgs sched-pageout = 0        maxclient=80.0% of real memory

其中的minfree限制了当系统的分页数少于此值时就要交换出此页数,并在达到maxfree时停止

其中maxfree必须>minfree+maxpgahead

./vmtune -F maxfree_pages -f minfree_pages 用于进行以上设置

minperm,maxperm对文件分页的控制

MINPERM与MAXPERM的意义

当内存中的文件缓存页在MINPERM以下时,内存页交换算法同时交换文件缓存页和程序页(computational pages)

当内存中的文件缓存页在MAXPERM以上时,内存页交换算法只交换文件缓存页。

当内存中的文件缓存页在MINPERM和MAXPERM之间时,内存页交换算法通常只交换文件缓存页,但如果文件缓存页的交换率大于程序页时,程序页也同样被交换。

MINPERM和MAXPERM参数的缺省值为20%与80%

即vmtune -p 20 -P 80

可以用以下命令将MINPERM设为5%的内存页,而MAXPERM设为20%的内存页。

# vmtune -p 5 -P 20

在vmtune的输出中,有一个numperm的值,其对我们调整很有参考意义

在Oracle数据库应用的环境下,可以将MINPERM和MAXPERM分别设为5%和20%甚至更小,从而使内存更多地被用于Oracle的SGA而不是系统的文件缓存。

但此时也要考虑系统的dbrw量的多少,用lock_sga方法可以更好的控制sga的是否交换(在lock_sga前,应该先vmtune -S 1 启用pinshm以支持应用的内存pin)