© 2008, www.oracledatabase12g.com. 版权所有.文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.
相关文章 | Related posts:
- Streams: 9i Quick Reference Configuration Views
- DIAG: Alter System Dump Undo – Quick Reference
- Minimum Software Versions and Patches Required to Support Oracle Products on IBM Power Systems
- Release 2 (9.2.0.8) Patch Set 7 for AIX 5L Based Systems (64-Bit)
- Step-By-Step Installation of Oracle 9i RAC on IBM AIX




How To Determine Whether an APAR has been Fixed in AIX Version/Maintenance Level
Applies to:
Oracle Server – Enterprise Edition – Version: 9.2.0.1 to 10.2.0.3
AIX5L Based Systems (64-bit)
AIX Based Systems (32-bit)
AIX 4.3 Based Systems (64-bit)
Goal
This note explains how to determine whether an APAR has been fixed in AIX Version/Maintenance level. This article will act as a guideline to understand which APAR’s are needed for Database configuration on a particular AIX Version/Maintenance Level.
Solution
1. Open the website http://www-912.ibm.com/eserver/support/fixes/, it will be directed to a page with Fix Central as header.
2. From the Product family menu, select Unix servers and continue. It redirects you to Product Menu.
3. Select AIX operating system, it again redirects you to Version Menu.
4. Select Version, it will redirect you to Fix type.
5. Select Specific fixes and continue, it prompts to a new page under heading Fix Central for AIX operating system <selected version no>.
6. Select APAR number or abstract from Search By Drop down list.
7. Type in APAR number, which we want to determine, has been fixed in AIX version/maintenance level. Click Go.
8. It gives the title of the APAR, select the APAR and press continue.
9. Select Operating system level. Enter the exact version and maintenance level.
10. Place a check mark on “Keep me at my current Technology Level (oslevel). Applicable to Operating System fixes only” and continue.
11. If the APAR has been fixed in the mentioned version level, then it will display “All the selected fixes in your download list are currently installed on your system or are included in the maintenance level installed on your system”.
We can check whether the same has been fixed in lower maintenance level by selecting lower maintenance level. If the APAR has not been fixed in the mentioned version, then it displays the package results for filesets, which needs to be downloaded.
Example
Using above-mentioned guidelines, we will check for APAR IY70159 on AIX 5.3 ML 2
Steps 1 to 6 will remain same
7. Key in the APAR number as IY70159
8. It gives the title of APAR as KRTL RELOCATION PROBLEM.
9. Select Operating System as AIX 5300-02
10. Place a check mark on “Keep me at my current Technology Level (oslevel). Applicable to operating system fixes only” and continue
11. It shows the package of filesets, which needs to be downloaded
Using above-mentioned guidelines, we will check for APAR IY70159 on AIX 5.3 ML 3
Steps 1 to 8 remain same
9. Select Operating System as AIX 5300-03
10. Place a check mark on “Keep me at my current Technology Level (oslevel). Applicable to operating system fixes only “and continue
11. It displays the fix has been installed in the system or included in the maintenance level.
How To Determine if all Filesets of an ML Or TL are Installed in AIX?
Applies to:
Oracle Server – Enterprise Edition – Version: 8.1.7.4 to 10.2.0.3
AIX5L Based Systems (64-bit)
AIX Based Systems (32-bit)
AIX 4.3 Based Systems (64-bit)
Goal
How to determine if all filesets of an ML or TL are installed in AIX?
Solution
To determine whether all filesets are installed for Maintenance or Technology Level, use the following command – instfix -i | grep ML or instfix -i | grep TL ( | stands for pipe)
For Example:
To determine whether all filesets are installed in AIX 5300-04 ie AIX 5L Version 5.3 TL4, use the command instfix –i | grep 04. The system will display information in terms of filesets missing for an APAR (IYxxxx).
The missing filesets can be downloaded for a particular APAR (IYxxxx) as mentioned in
Note 417451.1.
Note:
1. oslevel –r determines the AIX Maintenance/Technology Level.
2. instfix can be located under /usr/sbin
How does Oracle use AIO servers and what determines how many are used?
Applies to:
Oracle Server – Enterprise Edition – Version: 9.2.0.1 to 10.2.0.5 – Release: 9.2 to 10.2
IBM AIX on POWER Systems (64-bit)
***Checked for relevance on 25-Jul-2010***
AIX5L Based Systems (64-bit)
Goal
As observed, an AIO server is being used when needed.
How does Oracle use AIO servers and what determines how many are used?
Solution
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
=============
minservers
Oracle recommends an initial value equal to the number of CPUs on the system or 10, whichever is lower.
maxservers
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.
maxreqs
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.
AIX: DBWR trace warning: LIO_LISTIO RETURNED EAGAIN
The information in this article applies to:
Oracle Server – Enterprise Edition – Version: 8.1.7 to 10.2.0
AIX Based Systems (32-bit)
Goal
=====
What to do if a trace is generated by the dbwr writer,
“DBWR TRACE WARNING: LIO_LISTIO RETURNED EAGAIN”
Introduction
=============
You can hit this error sequence when asynchronous IO is used to write to files.
The lio_listio() function allows the calling process to initiate
a list of I/O requests with a single function call.
Asynchronous I/O requests are performed using this function.
When does the function return EAGAIN
=====================================
The function lio_listio() can set eagain when,
the system resources required to queue the request are not available.
Specifically, the transmit queue may be full, or the maximum number of
opens may have been reached.
In AIX Version 4, async I/O on JFS file systems is handled by kprocs.
Async I/O on raw logical volume partitions is handled directly by the kernel.
Starting with AIX 4.3.2 (and with a PTF for 4.3.1), Virtual Shared Disk (VSD)
devices do not use kprocs.
Asynchronous I/O Tunable Parameters
===================================
1.maxreqs
Specifies the maximum number of asynchronous I/O requests that can be
outstanding at any one time. Set the initial value to 5*number of logical
disks * queue depth. You can determine the queue depth (typically 3), by
running the follow command
$lsattr -E -l hdiskxx
Default: 4096;
Min value: AIO_MAX (/usr/include/sys/limits.h)
2.maxservers
Specifies the maximum number of AIO kprocs that will be created. Set the
initial value to 10 * number of logical disks. Monitor the actual number
of aioservers started during a typical workload using the pstat or ps
commands. If the number of active aioservers is equal to maxservers, increase
maxservers.
Default: 10
NOTE: maxservers is per-cpu.
3.minservers
Specifies the number of AIO kprocs that will be created when the AIO
kernel extension is loaded. Oracle recommends the initial setting equal to
the number of CPUs on the server or 10 (which ever is lower). Generally
maxservers / 2 is the appropriate setting for minservers.
Default: 1
Note:
AIO actions performed against a raw Logical Volume do not use kproc
server processes. The setting of maxservers and minservers have no
effect IOs done on raw devices. But if “fastpath” is set false, all
IO including the IO on Raw devices will go via kproc server processes
then these parameters can affect. By default this “fastpath” is set
to true. To check if fastpath is enabled or not use lsattr.
$lsattr -E -l aio0
minservers 1 MINIMUM number of servers True
maxservers 10 MAXIMUM number of servers True
maxreqs 4096 Maximum number of REQUESTS True
kprocprio 39 Server PRIORITY True
autoconfig available STATE to be configured at system restart True
fastpath enable State of fast path True
Commands
========
1. lsattr – Display the current values
Ex: ls attr -E -l aio0 -a maxreqs
ls attr -E -l aio0
2. chdev – Change the value of the parameters
Ex:chdev -l aio0 -a maxservers=NewValue
Change is effective immediately and is permanent. If the -T flag
is used, the change is immediate and lasts until the next boot.
If the -P flag is used, the change is deferred until the next boot
and is permanent.
Follow the steps below to set the maxreqs value:
# chdev -l aio0 -P -a maxreqs=NewValue
reboot the machine so that the new value takes effect.
3. SMIT
Ex:(smitty->Devices->Asynchronous I/O->Change/Show Characteristics of Asynchronous
I/O->{MINIMUM | MAXIMUM} number of servers or smitty aio)
4. To check the number of AIO servers being used
pstat -a | grep aios | wc -l
How to minimize EAGAIN
======================
1) Increase the number of async I/O servers. This will make sure that
your I/Os get to disk quickly and hence the queue length will
decrease. Note that if they are using fast path the number of aio
servers will not make a difference.
Monitoring settings:
Take statistics vmstat -s before any high I/O activity begins, and again
at the end. Check the field iodone. From this you can determine how many
physical I/Os are being handled in a given wall clock period. Then increase
the maximum number of servers and see if you can get more iodones in the
same time period.
2) The best way to minimize the occurence of this issue is to
increase the queue length for async I/O.
Change maxreqs.
Oracle will try to help with tuning issues, but ultimately, requesting support
from your OS vendor is the best option to get to the root of performance
problems in these areas.