Sponsored Content
Operating Systems AIX Asynchronous I/O on AIX and DB performance Post 302514790 by zaxxon on Monday 18th of April 2011 05:15:00 AM
Old 04-18-2011
Before increasing the maxservers, you could try if the behaviour is getting better when increasing the maxreqs 1st. On AIX 5.3 it is per default 4096. In AIX 6.1 they start with 16384 for example. If you had hit the max number of async I/O requests, you will most probably have gotten a Oracle DB error with a crash (see this: What is maxreqs parameter in AIX?)

What you see with iostat -AQ is just the average since boot. If you want an actual size of the ascync I/O queue, you might want to add some interval parameters like iostat -AQ 2 which will report every 2 seconds.

The number of active AIO servers processes you see with a ps output for example, is just the number of servers, that had been started at some time of a peak. It is not necessary the number of servers that are actually doing some work. To see these, you could use topas -i2. Here an example from a busy Oracle box:

Code:
┌─topas_nmon──S=WLMsubclasses────Host=somehost──────Refresh=2 secs───11:08.03─────────────────────────────────────────────────────────┐
│ Asynchronous-I/O-Processes ──────────────────────────────────────────────────────────────────────────────────────────────────────────│
│ Total AIO processes=1100 Actually in use=  59  CPU used=  20.9%    [Use zero                                                         │
│       All time peak=1100     Recent peak=  59      Peak=  20.9%     to reset]                                                        │

There are currently 1100 servers started, but now at production times, there are in this 2 seconds just 59 of them really active.
When aioserver processes are not doing any work anymore, they stay started and so their number does not decrease. Their number stays at their peak value since boot, which is here 1100. We have maxservers=50, so 50 for every logical cpu (lcpu) in the box, maxreqs=32768 (just in case) and minservers=5 to have a buffer for initial workload. If more are needed, the box just starts more of them.
It could be that in some special job or night job etc. there is much more demand of async IO, so that could be the reason, the box started all of the 1100.

Depending on what your current values for AIO are (post a lsattr -El aio0, it could no bad idea to increase them and monitor the box. For long term monitoring, write a script or maybe use something like nmon.
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

AIX server performance problem!

Hello, I have a performance problem on an AIX box. I'm not sure what is causing this and hoping someone may have suggestions. Currently I'm noticing that cpu's are waiting while the box is in a idle state. I checked the disks and none of them are at 100%. If they were then I would understand... (3 Replies)
Discussion started by: ctcuser
3 Replies

2. UNIX for Dummies Questions & Answers

AIX performance

Hiya all, I am a newbie sysadmin to AIX, i have worked on HPUX for 3 years. I have started a new role with in an IBM house and because there is me and one other there are a couple of issues I cannot work out: We havehad a production server slowing down processing batch jbs over the past... (6 Replies)
Discussion started by: chlawren
6 Replies

3. AIX

Performance testing on AIX

I'm doing performance testing for one application which works on AIX. But I don't know which performance parameters of memory need to be collected. Now, I just know very few: 1. page in 2. page out 3. fre They are all collected by "vmstat" command. I want to know, except for above... (2 Replies)
Discussion started by: adasong
2 Replies

4. AIX

AIX 5.2 performance question

I am trying to analyze the performance of an AIX system. I think I may have a disk I/O issue, but I am asking for help to validate or invalidate this assumption. I ran the commands below during a period of peak load. Please help me to find any performance bottlenecks. Thanks in advance for your... (15 Replies)
Discussion started by: jhall
15 Replies

5. AIX

Performance issue in AIX 5.3

Is there is any way to increase the CPU utilization of a Embedded SQL program in AIX 5.3 .. for performance purpose. (0 Replies)
Discussion started by: Gyanendra Awast
0 Replies

6. AIX

performance issue in AIX

Gurus, i have process that runs 5 times a day. it runs normally (takes about 1 hour) to complete in 3 runs but it is takes about ( 3 hrs to complete) two times So i need to figure out why it takes significanlty high time during those 2 runs. The process is a shell script that connect to... (2 Replies)
Discussion started by: mad_man12
2 Replies

7. AIX

AIX performance issue

Hi Guys, This is the situation I am in. Provide your views and input where should I start? I have one P7 test server and a p520 production server. the job is taking pretty long on the P7 test server when compared to the P5 production server. below is the full detail. Informix... (5 Replies)
Discussion started by: ithinksgreen
5 Replies

8. AIX

Need some help for AIX performance monitoring

Hello I am new user of AIX; I have only basic knowledge of the UNIX commands, and I want to create script that will monitor the performance and resources usage on AIX 6.1 machine. Basically I wan to start a loop that will grab, every 10 seconds, the CPU usage, the memory usage, the disk usage,... (1 Reply)
Discussion started by: adaher
1 Replies

9. AIX

AIX 5.3 performance problems

Hello, I encounter some performance issues on my AIX 5.3 server running in a LPAR on a P520. How do I investigate performance issues in AIX. Is there any kind of procedure that takes me to the steps to investigate my server and find the sub systems that is causing the issues? The performance... (1 Reply)
Discussion started by: petervg
1 Replies

10. AIX

Performance stats from AIX 6

Hi, I'm supposed to capture many performance stats on AIX 6 and stuck up with below: Priority queue Disk cache hit% Page out rate Swap out rate Memory queue I see vmstatis helpful for "page out" but not sure how to get the "rate". Could anyone please let me know how to get these... (4 Replies)
Discussion started by: reddyr
4 Replies
aio_proc_threads(5)						File Formats Manual					       aio_proc_threads(5)

NAME
aio_proc_threads - maximum number of process threads allowed in AIO pool VALUES
Failsafe Default Allowed values Recommended values DESCRIPTION
The implementation of POSIX AIO on HP-UX uses kernel threads to perform I/Os to filesystems that do not directly support true asynchronous I/O. (This distinction is transparent to the user.) The kernel threads are organized into worker-thread pools (called AIO thread pools) created on a per-process basis. Since a thread pool mechanism for I/Os introduces a variety of trade-offs concerning utilization of CPU time vs. I/O resources, four dynamic tunables are available to customize the behavior of this thread pool: aio_proc_threads(5), aio_proc_thread_pct(5), aio_req_per_thread(5), and aio_monitor_run_sec(5). Please see individual manpages for details on each of these tunables. The tunable specifies, on a per-process basis, the maximum number of process threads that can be used by the POSIX AIO system as kernel threads for issuing I/Os. This tunable interacts with in the following way: the maximum number of threads used for AIO will be the smaller of the two values defined by the two tunables, i.e.: This allows the number of AIO threads to vary dynamically with but to always be bound by an absolute limit of Who Is Expected to Change This Tunable? System administrators that run applications requiring heavy usage of POSIX AIO to filesystems. Restrictions on Changing This tunable is dynamic. Changes to to this tunable take effect immediately for new processes started after the change. They also impact existing processes, but the speed with which the changes propagate to running processes is determined by the tunable When Should the Value of This Tunable Be Raised? should be raised for applications that do not use very many threads for their own work, but desire high performance from the POSIX AIO sub- system. What Are the Side Effects of Raising the Value of This Tunable? Some applications that use POSIX AIO but also require a large number of threads may find that they are unable to create new threads. (This could happen if the POSIX AIO thread pool ends up using too many of a process' allowable threads.) In addition, using a larger number of kernel threads might lead to increased CPU utilization. When Should the Value of This Tunable Be Lowered? should be lowered when POSIX AIO performance is acceptable but applications using POSIX AIO are seeing errors when trying to create new threads for other work. What Are the Side Effects of Lowering the Value of This Tunable? By ultimately reducing the number of threads available to handle POSIX AIO requests, overall I/O throughput of the POSIX AIO subsystem could be reduced. What Other Tunables Should Be Changed at the Same Time as This One? interacts with this tunable by setting a limit on the number of AIO threads based on a percentage of the maximum number of allowable process threads. This allows the AIO thread pools to respond dynamically to changes in defines the desired relationship between the number of POSIX AIO kernel threads and the number of I/Os to be serviced. defines how often (in seconds) the AIO thread mechanism will monitor itself for adherence to the constraints defined by the tunables above. WARNINGS
All HP-UX kernel tunable parameters are release specific. This parameter may be removed or have its meaning changed in future releases of HP-UX. Installation of optional kernel software, from HP or other vendors, may cause changes to tunable parameter values. After installation, some tunable parameters may no longer be at the default or recommended values. For information about the effects of installation on tun- able values, consult the documentation for the kernel software being installed. For information about optional kernel software that was factory installed on your system, see at AUTHOR
was developed by HP. SEE ALSO
kctune(1M), sam(1M), gettune(2), settune(2), aio_proc_thread_pct(5), aio_req_per_thread(5), aio_monitor_run_sec(5). Tunable Kernel Parameters aio_proc_threads(5)
All times are GMT -4. The time now is 07:19 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy