AIX操作系统性能分析报告

来源:百度文库 编辑:神马文学网 时间:2024/04/30 02:13:05
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
从上面结果看出,CPU的idle在12-45之间,wait在22-39之间,表示目前处于空闲状态的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.8G;fre(物理内存中的空闲页)为1.9k*4k=7.6M,而物理内存有8G,表示物理内存已经被充分利用。
IBM默认采用LATE模式来调度内存和交换空间的使用,即进程需要内存时,则调度数据进入实际物理内存;而在AIX按照“最近最少使用算法”调度该段数据到交换空间时,才分配实际的虚拟内存给此进程。所以物理内存的充分利用是IBM调度机制决定的,并不能确切反映内存是否不足。
而从交换空间的使用达到7.8G看,内存空间略现不足。
Pi 和po 值在23-400之间,表示每秒从内存换入和换出的数据达到102k-1600k,同时fr:sr大部分时间在1:1以上,表示为获得可用的物理内存,需要检查更多的物理内存页。综合结论:内存页面调度频繁,内存容量出现瓶颈。
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
从上面看出,hdisk0和hdisk1 (为操作系统安装盘)磁盘利用率达到74%和92%,非常繁忙,同时Kb_read为3000k到4000k每秒,而Kb_wrtn则为0,表示目前系统的主要I/O为读操作。而在hdisk0和hdisk1上各建有8G的页面空间作为虚拟内存,再考虑到1)中pi 和po比较大的情况,可以推论是由于页面空间交换频繁,导致hdisk0和hdisk1的I/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之间,页面替换只窃取文件页,除非文件页的重调入数量大于计算页数。
其中Noncomp在20%-80%之间,此时内存页交换算法通常只交换文件缓存页,但如果文件缓存页的交换率大于程序页时,程序页也同样被交换。由于SGA属于Comp页,数据文件缓存属于Noncomp页,而在数据大量访问时,文件缓存页的交换率大于程序页(SGA),因此大量的SGA页面被交换;为避免大量SGA页被交换,需要降低maxperm%值到35%以下,这样就只有文件缓存页面被交换,减少了SGA交换的次数。
5)结论
调整maxperm%和minperm%的值,可以将MINPERM和MAXPERM分别设为5%和20%甚至更小,从而使内存更多地被用于Oracle的SGA而不是系统的文件缓存。
具体命令:# vmo -o minperm%=5 -o maxperm%=20
注意:加-p参数可以永久更改系统的配置,否则只改动当前的系统配置,重新启动后则失效。