direct IO or cache IO?
Patrick_Boyd at Dell.com
Patrick_Boyd at Dell.com
Fri May 12 09:16:10 CDT 2006
When dealing with LSI controllers there are actually 3 caches to deal with. From the OMSA documentation (I have deleted all references to non-LSI options)
The read policies indicate whether or not the controller should read sequential sectors of the logical drive when seeking data.
* Read-Ahead. When using read-ahead policy, the controller reads sequential sectors of the logical drive when seeking data. Read-ahead policy may improve system performance if the data is actually written to sequential sectors of the logical drive.
* No-Read-Ahead. Selecting no-read-ahead policy indicates that the controller should not use read-ahead policy.
* Adaptive Read-Ahead. When using adaptive read-ahead policy, the controller initiates read-ahead only if the two most recent read requests accessed sequential sectors of the disk. If subsequent read requests access random sectors of the disk, the controller reverts to no-read-ahead policy. The controller continues to evaluate whether read requests are accessing sequential sectors of the disk, and can initiate read-ahead if necessary.
The write policies specify whether the controller sends a write-request completion signal as soon as the data is in the cache or after it has been written to disk.
* Write-Back. When using write-back caching, the controller sends a write-request completion signal as soon as the data is in the controller cache but has not yet been written to disk. Write-back caching may provide improved performance since subsequent read requests can more quickly retrieve data from the controller cache than they could from the disk. Write-back caching also entails a data security risk, however, since a system failure could prevent the data from being written to disk even though the controller has sent a write-request completion signal. In this case, data may be lost. Other applications may also experience problems when taking actions that assume the data is available on the disk.
* Write-Through. When using write-through caching, the controller sends a write-request completion signal only after the data is written to the disk. Write-through caching provides better data security than write-back caching, since the system assumes the data is available only after it has been safely written to the disk.
The Direct I/O and Cache I/O cache policies apply to reads on a specific virtual disk. These settings do not affect the read-ahead policy. The cache policies are as follows:
* Cache I/O. Specifies that all reads are buffered in cache memory.
* Direct I/O. Specifies that reads are not buffered in cache memory. When using direct I/O, data is transferred to the controller cache and the host system simultaneously during a read request. If a subsequent read request requires data from the same data block, it can be read directly from the controller cache. The direct I/O setting does not override the cache policy settings. Direct I/O is also the default setting.
Let me know if this information is not clear enough.
Dell Storage Software Engineer
From: linux-poweredge-bounces at dell.com [mailto:linux-poweredge-bounces at dell.com] On Behalf Of Jason Wozniak
Sent: Friday, May 12, 2006 8:53 AM
To: mcclnx mcc; linux-poweredge-Lists
Subject: RE: direct IO or cache IO?
Direct IO still does read ahead caching, so they both actually use the cache as I understand it. If you have filesystemio_options set to "directio", or "setall" in oracle to bypass the os cache then perhaps cache IO would have a performance edge when writing to disk, though I haven't tested it myself. If you're not running oracle using directIO, or setall, and have filesystemio_options set to "async" then I would advise against cache IO on the controller, as you would already be double caching with the OS, and oracle.
From: linux-poweredge-bounces at dell.com [mailto:linux-poweredge-bounces at dell.com] On Behalf Of mcclnx mcc
Sent: Thursday, May 11, 2006 5:11 PM
To: linux-poweredge at lists.us.dell.com
Subject: direct IO or cache IO?
we have several DELL 6800 with LSI 4e/DC adapter cards
(128 MB cache) in it. DELL 6800 run under Redhar AS 4.0 and ORACLE 9ir2. When I configured DELL 6800 server local disks (Mirror or RAID 5), it have two I/O policy to choice - direct IO and cache IO.
I doing simple test by copy files between differents disk set and found "direct IO" performance better than "cache IO". It is against what I read before. I used to saw documents from SUN and IBM said "large disk array cache will improve I/O performance".
Any one has suggestion FOR ORACLE server which I/O policy should I setup?
___________________________________________________ 最新版 Yahoo!奇摩即時通訊 7.0，免費網路電話任你打！ http://messenger.yahoo.com.tw/
Linux-PowerEdge mailing list
Linux-PowerEdge at dell.com
Please read the FAQ at http://lists.us.dell.com/faq
More information about the Linux-PowerEdge