Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: I/O and db_file_multiblock_read_count

RE: I/O and db_file_multiblock_read_count

From: Tanel Poder <tanel.poder.003_at_mail.ee>
Date: Wed, 13 Dec 2006 20:15:15 +0800
Message-id: <045101c71eb0$5898ba30$6401a8c0@windows01>


Hi,  

I got interested in this and did a little truss-ing. Can't test it on SPARC but on my Solaris 10 x64 the write() system calls are still made.  

The difference between dd and cat was that dd used read() for reading the source file, while cat used mmap(). Both commands dis use write() call for writing to output.  

My theory is that as just mmap()-ing a file doesn't mean it actually has to be read from disk, then during write() system call this opens up an opportunity for kernel to skip touching the mmapped pages at all, if it sees they would be copied to void anyway. So most of the pages "copied" using cat don't even have to be paged in from disk.  

No idea whether this is actually true but at least the number of system calls and their timing seems to indicate that.  

Tanel.  

--
http://www.freelists.org/webpage/oracle-l
Received on Wed Dec 13 2006 - 06:15:15 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US