Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4824541
  • 博文数量: 971
  • 博客积分: 8199
  • 博客等级: 中将
  • 技术积分: 12717
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-25 20:19















分类: 系统运维

2012-08-31 09:30:03

OS:Aix 5.3
# lslpp -l bos.rte.aio
Fileset                      Level  State      Description
Path: /usr/lib/objrepos
  bos.rte.aio       COMMITTED  Asynchronous I/O Extension
Path: /etc/objrepos
  bos.rte.aio       COMMITTED  Asynchronous I/O Extension
# lsattr -El aio0
autoconfig available STATE to be configured at system restart True
fastpath   enable    State of fast path                       True
kprocprio  39        Server PRIORITY                          True
maxreqs    4096      Maximum number of REQUESTS               True
maxservers 10        MAXIMUM number of servers per cpu        True
minservers 1         MINIMUM number of servers                True

#aioo -a
minservers = 1
maxservers = 10
maxreqs = 4096
fsfastpath = 0
# chdev -P -l aio0 -a autoconfig='available'
aio0 changed
#chdev -l aio0 -a maxreqs=16384
Method error (/usr/lib/methods/chgaio):
0514-064 Cannot perform the requested function because the
AIO kernel extension is permanent and cannot be unloaded.
#chdev -l aio0 -P  -a maxreqs=16384
aio0 changed
Changes the device's characteristics permanently in the Customized Devices object class without actually changing the device.This is useful for devices that cannot be made unavailable and cannot be changed while in the available state. The change ismade to the database, and the changes are applied to the device when the system is rebooted. This flag cannot be used withthe -T flag. Not all devices support the -P flag.
#pstat -a | grep aio
# iostat -A 1 1
System configuration: lcpu=1 drives=3 paths=0 vdisks=0
aio: avgc avfc maxg maif maxr avg-cpu: % user % sys % idle % iowait
        0    0   33    0 4096             0.4   0.8   98.8      0.0
Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk1           0.0       0.0       0.0          0         0
hdisk0           0.0       0.0       0.0          0         0
cd0              0.0       0.0       0.0          0         0
下面的列表描述了用于监视 AIO 子系统的一些参数。
* avfc:这个参数用于报告在指定的时间间隔内每秒的平均快速路径请求计数。
* avgc:这个参数用于报告在指定的时间间隔内每秒的平均全局异步 I/O 请求。
* maxgc:这个参数用于报告从上一次获取这个值以来最大的全局异步 I/O 请求。
* maxfc:这个参数用于报告从上一次获取这个值以来快速路径请求计数的最大值。
* maxreqs:这个参数是允许的、异步 I/O 请求的最大值。
在我们的示例中,AIO 服务器不是系统瓶颈。
需要注意的是在AIX 6L中异步io会自动开启,maxreqsminservers、maxservers也会根据应用而自动调整,无须人工干预,当然也没有smitty aio这条命令了,呵呵.
AIX 5L supports asynchronous I/O (AIO) for database files created both on file system partitions and on raw devices.
AIO on raw devices is implemented fully into the AIX kernel, and does not require database processes to service the AIO requests.
When using AIO on file systems, the kernel database processes (aioserver) control each request from the time a request is taken off the queue to the time it is completed. The number of aioserver servers determines the number of AIO requests that can be processed in the system concurrently. So, it is important to tune the number of aioserver processes when using file systems to store Oracle Database data files.
Use one of the following commands to set the number of servers. This applies only when using
asynchronous I/O on file systems rather than raw devices:
smit aio
chdev -l aio0 -a maxservers=' m ' -a minservers='n'
Set the minimum value to the number of servers to be started when the system is started. Set the maximum value to the number of servers that can be started in response to a large number of concurrent requests. These parameters apply to file systems only. They do not apply to raw devices.
The default value for the minimum number of servers is 1. The default value for the maximum number of servers is 10. These values are usually too low to run Oracle Database on large systems with 4 CPUs or more, if you are not using kernelized AIO. Oracle recommends that you set the parameters to the values listed in the following table.
Parameter Values

Oracle recommends an initial value equal to the number of CPUs on the system or 10, whichever is lower.

Starting with AIX 5L version 5.2, this parameter counts the maximum number of AIO servers per CPU. On previous versions of AIX, it was a systemwide value. If you are using GPFS, then set maxservers to worker1threads divided by the number of CPUs. This is the optimal setting.
Increasing maxservers does not lead to improved I/O performance. If you are using JFS/JFS2, then set the initial value to 10 times the number of logical disks divided by the number of CPUs.

Monitor the actual number of aioservers started during a typical workload using the pstat or ps commands. If the actual number of active aioservers is equal to the maxservers, then increase the maxservers value.

Set the initial value to 4 times the number of logical disks multiplied by the queue depth. You can determine the queue depth by running the following command:
$ lsattr -E -l hdiskxx
Typically, the queue depth is 3.
If the value of the maxservers or maxreqs parameter is set too low, then the following warning messages are repeatedly displayed:
"Warning: lio_listio returned EAGAIN
Performance degradation may be seen."
You can avoid these errors by increasing the value of the maxservers parameter. To display the number of AIO servers running, enter the following commands as the root user:
# pstat -a | grep -c aios
# ps -k | grep aioserver
Check the number of active AIO servers periodically, and change the values of the minservers and maxservers parameters if required. The changes take place when the system is restarted.
阅读(6076) | 评论(0) | 转发(0) |




登录 注册