Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: directio and async io on redhat linux 3 and oracle 9i
Noons wrote:
> yong..._at_yahoo.com wrote:
>
> > Alternatively, try `truss -u:directio a.out`. In the test of my dio
...
> > Or try `truss -t!all -u:directio a.out` to remove all syscalls in
> > output.
>
> That should do the trick then? I mean, truss for directio()?
>
...
>
> This is the memory usage with it on a create index:
>
> [nsouto_at_db2]$ free -mt
> total used free shared buffers cached
> Mem: 3010 978 2031 0 166 514
...
> Without O_DIRECT:
>
> [nsouto_at_db2]$ free -mt
> total used free shared buffers cached
> Mem: 3010 2992 17 0 4 2697
...
> I'd say the difference in mem usage is caused by the O_DIRECT.
Hi, Noons,
I was testing on Solaris. I believe the truss commands I showed can be used to check for a call to directio().
I think Linux free command cached column shows page cache usage. So you only need to look at that column.
To Noons and Chao,
Now when I think about the message I posted last night, I may be misinterpreting Chao's question. I suggested a way to find the OS level evidence *when* Oracle is enabling directio. But Chao may be asking how to find such evidence at OS level *after* Oracle has enabled it. I don't know the answer. A similar question has been asked in the Solaris group (how to find out if a process has called directio(3C) call in the past). pfiles may not be revealing everything in in-core inodes, where I believe directio() made some change. For old Solaris versions, you may use crash(1M) to find difference in user area dump (u command) for a process, possibly followed by a file command (some common usage can be found at http://rootshell.be/~yong321/computer/SolarisMdb.txt). New versions replace (and augment) crash with mdb but I haven't played with it much. When I have time, I'll research it. That doesn't need a Sun box Chao is peddling!
Yong Huang Received on Mon May 09 2005 - 11:02:02 CDT