AIX操作系统性能分析报告1

来源:百度文库 编辑:神马文学网 时间:2024/04/25 19:40:42

1)CPU

$ vmstat 5 5

 

System configuration: lcpu=8 mem=7744MB

 

kthr    memory              page              faults        cpu

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

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

 1  5 1943309  1817   0 341 109 2018 6836   0 1246 3524 5000 34  3 32 31

 1  8 1943312   861   0  23 812 1975 2909   0 1227  776 4348 13  3 45 39

 2  6 1945483  1855   0  78 737 1189 1880   0 639 1287 2119 30  1 39 30

 2  5 1949024  1921   0 307  73 1002 2973   0 511 3190 1719 57  1 20 22

 4  9 1959284  2146   0 400  35 2745 21198   0 824 21885 3045 62  2 12 24

从上面结果看出,CPUidle1245之间,wait2239之间,表示目前处于空闲状态的CPU基本属于正常;但是处于等待状态的CPU较多,即有较多的进程在等待获取资源后才能进入CPU运行。

2)内存

$ vmstat 5 5

 

System configuration: lcpu=8 mem=7744MB

 

kthr    memory              page              faults        cpu

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

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

 1  5 1943309  1817   0 341 109 2018 6836   0 1246 3524 5000 34  3 32 31

 1  8 1943312   861   0  23 812 1975 2909   0 1227  776 4348 13  3 45 39

 2  6 1945483  1855   0  78 737 1189 1880   0 639 1287 2119 30  1 39 30

 2  5 1949024  1921   0 307  73 1002 2973   0 511 3190 1719 57  1 20 22

 4  9 1959284  2146   0 400  35 2745 21198   0 824 21885 3045 62  2 12 24

从上面看出,avm(激活虚拟内存页)1.95M*4K=7.8Gfre(物理内存中的空闲页)1.9k*4k=7.6M,而物理内存有8G,表示物理内存已经被充分利用。

IBM默认采用LATE模式来调度内存和交换空间的使用,即进程需要内存时,则调度数据进入实际物理内存;而在AIX按照“最近最少使用算法”调度该段数据到交换空间时,才分配实际的虚拟内存给此进程。所以物理内存的充分利用是IBM调度机制决定的,并不能确切反映内存是否不足。

而从交换空间的使用达到7.8G看,内存空间略现不足。

Pi po 值在23400之间,表示每秒从内存换入和换出的数据达到102k-1600k,同时fr:sr大部分时间在11以上,表示为获得可用的物理内存,需要检查更多的物理内存页。综合结论:内存页面调度频繁,内存容量出现瓶颈。

3)硬盘I/O

$ iostat 5 5

 

System configuration: lcpu=8 drives=14 paths=2 vdisks=0

 

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

          0.0         11.7               56.6   1.1   20.2     22.1

 

Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn

dac0             0.0       0.0       0.0          0         0

dac0-utm         0.0       0.0       0.0          0         0

dac1             0.0       0.0       0.0          0         0

dac1-utm         0.0       0.0       0.0          0         0

hdisk1          92.3     842.4     210.6       4252         0

hdisk0          74.1     691.8     172.4       3492         0

dac3             0.0       0.0       0.0          0         0

dac3-utm         0.0       0.0       0.0          0         0

dac2             0.0      75.3      12.5        192       188

dac2-utm         0.0       0.0       0.0          0         0

hdisk2           1.8      75.3      12.5        192       188

hdisk3           0.0       0.0       0.0          0         0

cd0              0.0       0.0       0.0          0         0

hdisk4           0.0       0.0       0.0          0         0

从上面看出,hdisk0hdisk1 (为操作系统安装盘)磁盘利用率达到74%和92%,非常繁忙,同时Kb_read3000k4000k每秒,而Kb_wrtn则为0,表示目前系统的主要I/O为读操作。而在hdisk0hdisk1上各建有8G的页面空间作为虚拟内存,再考虑到1)中pi po比较大的情况,可以推论是由于页面空间交换频繁,导致hdisk0hdisk1I/O比较高。

 

综合结论:由于内存瓶颈,导致页面交换频繁,从而导致操作系统盘I/O过量,影响系统响应速度。

但是导致页面频繁交换的根本原因是什么呢?通过分析下面的参数,以及结合AIX操作系统内存调度机制,分析如下:

 


4)
 
进一步分析

 

机器虚拟内存参数设置情况如下:

# vmo -a

                  maxclient% = 80

               maxfree = 1088

               maxperm = 1525023 (大约6.1G)

              maxperm% = 80

                maxpin = 1585972

     memplace_unmapped_file = 2

              mempools = 2

               minfree = 960

               minperm = 381255(大约1.5G

              minperm% = 20

             nokilluid = 0

                 vm_modlist_threshold = -1

vmm_fork_policy = 1

# topas 命令的部分结果如下:

Real,MB    7743

% Comp     64.8

% Noncomp  35.9

% Client   36.3

4个参数的解释:

minfree  maxfree 参数的值

使用空闲列表的目的是保持跟踪进程终止释放的实内存的页帧,向要求者立即提供页帧,而不是等待页面窃取和与之相连的输入输出的结束。minfree 限制了空闲列表的容量,低于该数值时必须开始窃取页充入空闲列表。当大于maxfree 参数时页窃取会停止。

minperm  maxperm 参数的值

操作系统通过把在曾经读写的内存页留在实内存一满足不同要求。如果文件页面在它们的页帧被重新分配前被请求,那就节省了输入输出操作。该文件页面可以来自本地的或远程的(如 NFS)系统。

页帧使用的文件相对用于计算的(工作或程序文本)段的文件的比例是松散地受控于 minperm  maxperm 的值的:

如果 RAM 中文件页面所占的百分比高于 maxperm,页面替换的窃取只用于文件页。 

如果 RAM 中文件页面所占的百分比低于 minperm,页面替换的窃取同时用于文件页和计算页。 

如果 RAM 中文件页面所占的百分比介于 minperm  maxperm之间,页面替换只窃取文件页,除非文件页的重调入数量大于计算页数。

其中Noncomp20%-80%之间,此时内存页交换算法通常只交换文件缓存页,但如果文件缓存页的交换率大于程序页时,程序页也同样被交换。由于SGA属于Comp页,数据文件缓存属于Noncomp页,而在数据大量访问时,文件缓存页的交换率大于程序页(SGA),因此大量的SGA页面被交换;为避免大量SGA页被交换,需要降低maxperm%值到35%以下,这样就只有文件缓存页面被交换,减少了SGA交换的次数。

5)结论

调整maxperm%minperm%的值,可以将MINPERMMAXPERM分别设为5%20%甚至更小,从而使内存更多地被用于OracleSGA而不是系统的文件缓存。

具体命令:# vmo -o minperm%=5 -o maxperm%=20 

注意:加-p参数可以永久更改系统的配置,否则只改动当前的系统配置,重新启动后则失效。