General
cancel
Showing results for 
Search instead for 
Did you mean: 

how to check if process uses async io?

Sergey Akifiev_1
Frequent Advisor

how to check if process uses async io?

how to check if process uses async io?
i want to make sure, that my oracle instance uses async io. i guess, there should be aio_xxx syscalls visible in glance/truss for process?
7 REPLIES
Geoff Wild
Honored Contributor

Re: how to check if process uses async io?

Well, first off, async io will not be used on LVM - so if you are using LVM - then you don't have to worry.

Async IO is NOT supported on file systems, only on raw devices and particular volume managers like Veritas.

http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams061.htm#sthref246

Rgds...Geoff
Proverbs 3:5,6 Trust in the Lord with all your heart and lean not on your own understanding; in all your ways acknowledge him, and he will make all your paths straight.
tom quach_1
Super Advisor

Re: how to check if process uses async io?

Hello,

You can use these commands to check if there is any activity on async driver.

# fuser /dev/async
# lsof -p

Hope this help,
Tom
Sergey Akifiev_1
Frequent Advisor

Re: how to check if process uses async io?

2Geoff Wild: you're quite not correct about async io on filesystems and lvm. see Oracle Note:401323.1 for example.

2tom quach: on one server i see oracle processes, interacting with /dev/async, but there is no `asyncdisk' driver in kernel (according to sam. it shows OUT in all positions for this driver). imho, async io isn't used.

btw, oracle recommeds to create /dev/async with 0x000007 minor number. and i have 0x000000 minors on all servers. is it worth to recreate /dev/async with mentioned minor number?
Yogeeraj_1
Honored Contributor

Re: how to check if process uses async io?

Hi seygey,

as mentioned in the metalink note 401323.1, the minor number can be one of the following values:

0x000000 default-immediate reporting will not be used and a cache flush will be done before posting an IO operation complete
0x000001 enable immediate reporting
0x000002 flush the CPU cache after reads
0x000004 allow disks to timeout
0x000005 is a combination of 1 and 4
0x000007 is a combination of 1, 2 and 4

it is up to you to decide and check the reason for the value being 0x000000 on the other servers.

But I would prefer to use the Oracle recommended value: 0x000007

good luck!

kind regards
yogeeraj
No person was ever honoured for what he received. Honour has been the reward for what he gave (clavin coolidge)
Geoff Wild
Honored Contributor

Re: how to check if process uses async io?

Actually - I am correct - on HP-UX async I/O can NOT be used with LVM. How do I know? Because last August I went through the same thing with my DBA's and a quick support call to HP revealed that async I/O does NOT work with LVM.

Rgds...Geoff
Proverbs 3:5,6 Trust in the Lord with all your heart and lean not on your own understanding; in all your ways acknowledge him, and he will make all your paths straight.
Geoff Wild
Honored Contributor

Re: how to check if process uses async io?

Here's a previous thread on this topic:

http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=1081006

Rgds...Geoff
Proverbs 3:5,6 Trust in the Lord with all your heart and lean not on your own understanding; in all your ways acknowledge him, and he will make all your paths straight.
Sergey Akifiev_1
Frequent Advisor

Re: how to check if process uses async io?

i still think, that it is not quite correct.
we've got 'direct path read' and 'direct path write' events in oracle's v$* views after turning async io on.
that DB is using raw devices which are under LVM management.
also oracle document A97297_01 telling, that oracle 9i _IS_ using async io and all of features of HP asyncdsk driver.