The immortal aioserver


 
Thread Tools Search this Thread
Operating Systems AIX The immortal aioserver
# 15  
Old 10-21-2015
Quote:
Originally Posted by agent.kgb
if you want to see them dead, try to change some parameters in the system ;-)
While this is very true - in fact, the "aio" stands for "Asynchronous I/O" and the processes are controlled by tuning parameters - it is most probably a bad idea to do so on a database system. If memory serves correctly Oracle always requested to have asynchronous I/o switched on during the installation and the performance of the db-writer process greatly suffered when it was switched off.

Anyways, the "aioserver" processes are definitely not reponsible for preventing the unmount of the filesystems, so it won't have any positive effect even if it succeeds (although this, given that they are kernel processes is highly unlikely).

The number, btw., of the main processes is dependent on the number of LCPUs the system has. I suppose your system has 8 CPUs configured and this is why you always see a minimum of 8 processes running.

I hope this helps understanding these processes.

bakunin
# 16  
Old 10-21-2015
Quote:
Originally Posted by Linusolaradm1
Already play with ioo,i set for test 1 to posix_aio_server_inactivity
and
aio_server_inactivity
But nothing change
if you want to switch aio off, you have to remove some files such as /usr/lib/drivers/aio.ext, set some restricted tunables such as aio_fastpath, and then reboot the server. But I think, your DBA will be very unhappy about it, and you have to obtain IBM permission to change a restricted tunable.
# 17  
Old 10-23-2015
There are things, other than processes (I am thinking kernel extension, e.g.) that can keep something open.

a) assuming you have an Oracle support license - ask them what their experience is for something like this. Perhaps there is an Oracle kernel extension that neither fuser nor lsof can see and report back to you.

b) same for AIX - open a PMR. Support will probably want a snap, and maybe even a perfpmr to get an impression of details that would be hard to show/discuss in a forum

c) the command ps is probably a poor way to diagnosis this. I suspect all you are shown is the process list in user space - and not the status of the threads that 'work' in kernel space. Note the ps man page lists different possible values for a process and kernel thread

Code:
          S
            (-l and l flags) The state of the process or kernel thread :

         For processes:
              O
                   Nonexistent
              A
                   Active
              W
                   Swapped
              I
                   Idle (waiting for startup)
              Z
                   Canceled
              T
                   Stopped
            For kernel threads:
              O
                   Nonexistent
              R
                   Running
              S
                   Sleeping
              W
                   Swapped
              Z
                   Canceled
              T
                   Stopped

As you have shown us the 'A' value, this implies it is a process - that could do something - but you have not shown us the (kernel) threads.
Note also, that when this column is blank (empty) the process/thread is actually 'running'. In other words, 'Active' != 'Running'

re: aio servers - the processes you see are there - just as minServers controls (i.e., starts) several httpd processes - so that they are already 'active' aka loaded, and ready to be used. Just because an aioserver process exists does not mean it is doing anything - most of the time they are "waiting for work".

The Oracle logs - I would hope - could report whether any i/o (scheduled/requested via aio_read() or aio_write()) is pending. And so, in closing - why AIX is not permitting you to unmount a filesystem previous used (exclusively) by an application probably lies in the application domain.
AIX, as any solid OS would, has built-in safety (one or more) to maintain system integrity. In short, don't blame the messenger.

Note: IF AIX is at fault - forbidding an unmount when everything has been closed cleanly - please please tell us - and make us wiser, - i.e., less gullible/naive, people!

* Ideally, you can replicate this 'locking' situation on a test server. By using /usr/bin/truss with your unmount command (on either test or production) - you may learn at least which system call is reporting an unsafe (not OK) status, and from that you may also be able to establish what error status (see /usr/include/error.h for possible values and meanings).

Last edited by MichaelFelt; 10-23-2015 at 10:50 AM.. Reason: add truss() suggestion.
Login or Register to Ask a Question

Previous Thread | Next Thread

2 More Discussions You Might Find Interesting

1. AIX

aioserver query

Hi Gurus, What is the recommended value for aioserver in aix 5.3 current value is 16384 And used is ps -k|wc -l 4768 We usauslly get issues like slow server performance and query waiting time more etc. Regards newaix (2 Replies)
Discussion started by: newaix
2 Replies

2. AIX

AIOServer process question

Hi I've been trying to learn a bit more about AIOServer processes and how my company administers them, one question i have is, while checking, most of my servers show a memory overhead of about 448 k per aioserver process (nmon -A) however i have found a few with figures of 67 or 56k. Most... (0 Replies)
Discussion started by: philib
0 Replies
Login or Register to Ask a Question