<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: SSD</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2007/10/19/ssd/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Mon, 20 May 2013 17:10:14 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Dan</title>
		<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-45114</link>
		<dc:creator><![CDATA[Dan]]></dc:creator>
		<pubDate>Tue, 21 Feb 2012 13:25:24 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-45114</guid>
		<description><![CDATA[Hi all,

The subject was discussed a long time ago, but maybe someone reads my post and provide a solution.
The problem I&#039;m facing is with regard to Oracle database(10.2.0.4) installed entirely on a SSD disk, on CentOS 6.
From time to time, every one month or so, the SSD is put into offline mode, no I/O can be made and Oracle hangs. Usually this is resolved with a reboot, but had also some data corruption in one case.

Here is a small fragment of the OS logs:

Feb 16 05:11:21 oraclexx kernel: ata6.00: exception Emask 0x0 SAct 0xffff
SErr 0x0 action 0x6 frozen
Feb 16 05:11:21 oraclexx kernel: ata6.00: failed command: WRITE FPDMA QUEUED
Feb 16 05:11:21 oraclexx kernel: ata6.00: cmd
61/08:00:38:15:43/00:00:03:00:00/40 tag 0 ncq 4096 out
Feb 16 05:11:21 oraclexx kernel:         res
40/00:00:00:00:00/00:01:00:00:00/a0 Emask 0x4 (timeout)
Feb 16 05:11:21 oraclexx kernel: ata6.00: status: { DRDY }


Feb 16 05:11:32 oraclexx kernel: ata6: hard resetting link
Feb 16 05:11:32 oraclexx kernel: ata6: SATA link down (SStatus 0 SControl
310)
Feb 16 05:11:32 oraclexx kernel: ata6.00: disabled
Feb 16 05:11:32 oraclexx kernel: ata6.00: device reported invalid CHS
sector 0


Feb 16 05:11:32 oraclexx kernel: end_request: I/O error, dev sdb, sector
54727992
Feb 16 05:11:32 oraclexx kernel: Buffer I/O error on device sdb1, logical
block 6840743
Feb 16 05:11:32 oraclexx kernel: lost page write due to I/O error on sdb1
Feb 16 05:11:32 oraclexx kernel: sd 6:0:0:0: [sdb] Result: hostbyte=DID_OK
driverbyte=DRIVER_SENSE


Feb 16 05:11:32 oraclexx kernel: end_request: I/O error, dev sdb, sector
34656896
Feb 16 05:11:32 oraclexx kernel: sd 6:0:0:0: rejecting I/O to offline device
Feb 16 05:11:32 oraclexx kernel: end_request: I/O error, dev sdb, sector 0
Feb 16 05:11:32 oraclexx kernel: Buffer I/O error on device sdb1, logical
block 4331856
Feb 16 05:11:32 oraclexx kernel: lost page write due to I/O error on sdb1


Feb 16 05:11:32 oraclexx kernel: end_request: I/O error, dev sdb, sector
55003384
Feb 16 05:11:32 oraclexx kernel: ata6: EH complete
Feb 16 05:11:32 oraclexx kernel: ata6.00: detaching (SCSI 6:0:0:0)
Feb 16 05:11:32 oraclexx kernel: Aborting journal on device sdb1-8.
Feb 16 05:11:32 oraclexx kernel: EXT4-fs error (device sdb1):
ext4_journal_start_sb:
Feb 16 05:11:32 oraclexx kernel: JBD2: I/O error detected when updating
journal superblock for sdb1-8.
Feb 16 05:11:32 oraclexx kernel: EXT4-fs error (device sdb1) in
ext4_reserve_inode_write: Journal has aborted


Best regards and hope someone answers soon :)]]></description>
		<content:encoded><![CDATA[<p>Hi all,</p>
<p>The subject was discussed a long time ago, but maybe someone reads my post and provide a solution.<br />
The problem I&#8217;m facing is with regard to Oracle database(10.2.0.4) installed entirely on a SSD disk, on CentOS 6.<br />
From time to time, every one month or so, the SSD is put into offline mode, no I/O can be made and Oracle hangs. Usually this is resolved with a reboot, but had also some data corruption in one case.</p>
<p>Here is a small fragment of the OS logs:</p>
<p>Feb 16 05:11:21 oraclexx kernel: ata6.00: exception Emask 0&#215;0 SAct 0xffff<br />
SErr 0&#215;0 action 0&#215;6 frozen<br />
Feb 16 05:11:21 oraclexx kernel: ata6.00: failed command: WRITE FPDMA QUEUED<br />
Feb 16 05:11:21 oraclexx kernel: ata6.00: cmd<br />
61/08:00:38:15:43/00:00:03:00:00/40 tag 0 ncq 4096 out<br />
Feb 16 05:11:21 oraclexx kernel:         res<br />
40/00:00:00:00:00/00:01:00:00:00/a0 Emask 0&#215;4 (timeout)<br />
Feb 16 05:11:21 oraclexx kernel: ata6.00: status: { DRDY }</p>
<p>Feb 16 05:11:32 oraclexx kernel: ata6: hard resetting link<br />
Feb 16 05:11:32 oraclexx kernel: ata6: SATA link down (SStatus 0 SControl<br />
310)<br />
Feb 16 05:11:32 oraclexx kernel: ata6.00: disabled<br />
Feb 16 05:11:32 oraclexx kernel: ata6.00: device reported invalid CHS<br />
sector 0</p>
<p>Feb 16 05:11:32 oraclexx kernel: end_request: I/O error, dev sdb, sector<br />
54727992<br />
Feb 16 05:11:32 oraclexx kernel: Buffer I/O error on device sdb1, logical<br />
block 6840743<br />
Feb 16 05:11:32 oraclexx kernel: lost page write due to I/O error on sdb1<br />
Feb 16 05:11:32 oraclexx kernel: sd 6:0:0:0: [sdb] Result: hostbyte=DID_OK<br />
driverbyte=DRIVER_SENSE</p>
<p>Feb 16 05:11:32 oraclexx kernel: end_request: I/O error, dev sdb, sector<br />
34656896<br />
Feb 16 05:11:32 oraclexx kernel: sd 6:0:0:0: rejecting I/O to offline device<br />
Feb 16 05:11:32 oraclexx kernel: end_request: I/O error, dev sdb, sector 0<br />
Feb 16 05:11:32 oraclexx kernel: Buffer I/O error on device sdb1, logical<br />
block 4331856<br />
Feb 16 05:11:32 oraclexx kernel: lost page write due to I/O error on sdb1</p>
<p>Feb 16 05:11:32 oraclexx kernel: end_request: I/O error, dev sdb, sector<br />
55003384<br />
Feb 16 05:11:32 oraclexx kernel: ata6: EH complete<br />
Feb 16 05:11:32 oraclexx kernel: ata6.00: detaching (SCSI 6:0:0:0)<br />
Feb 16 05:11:32 oraclexx kernel: Aborting journal on device sdb1-8.<br />
Feb 16 05:11:32 oraclexx kernel: EXT4-fs error (device sdb1):<br />
ext4_journal_start_sb:<br />
Feb 16 05:11:32 oraclexx kernel: JBD2: I/O error detected when updating<br />
journal superblock for sdb1-8.<br />
Feb 16 05:11:32 oraclexx kernel: EXT4-fs error (device sdb1) in<br />
ext4_reserve_inode_write: Journal has aborted</p>
<p>Best regards and hope someone answers soon :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Gorbachev</title>
		<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-24061</link>
		<dc:creator><![CDATA[Alex Gorbachev]]></dc:creator>
		<pubDate>Thu, 08 Nov 2007 02:38:31 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-24061</guid>
		<description><![CDATA[Thanks Jamon.
Your note about 2 GB vs 4 GB is interesting.
I won&#039;t make it to OOW this year as I have another conference almost at the same time so it&#039;s too much for me. I&#039;ll drop you a note.]]></description>
		<content:encoded><![CDATA[<p>Thanks Jamon.<br />
Your note about 2 GB vs 4 GB is interesting.<br />
I won&#8217;t make it to OOW this year as I have another conference almost at the same time so it&#8217;s too much for me. I&#8217;ll drop you a note.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jamon Bowen</title>
		<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23532</link>
		<dc:creator><![CDATA[Jamon Bowen]]></dc:creator>
		<pubDate>Wed, 31 Oct 2007 20:05:43 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23532</guid>
		<description><![CDATA[Hi Lewis and Alex,

I am glad to see that this post has blossomed quite a bit since my post.  One quick side note - the disk in your Laptop is battery backed (by the laptop battery :) ).

I am glad that you found the setting to disable the write cache on the disk as I think it helps explain more clearly that when you are testing memory access on any device there is no easy way to predict what the performance will be without testing.

A quick note on Alex&#039;s comment on RamSan performance, our write time is the sum of RamSan access time + HBA driver/Asic access Latency + OS/application access latency.  For a few years back on an HPUX platform I would guess that a 2 Gbps HBA was used in the server.  I end up doing a lot of FC performance testing and there have been dramatic advances in the access latency of 4 Gbps HBAs vs 2 Gbps HBAs.  The 2 Gbps HBAs tended to add 0.2-0.3 ms to an access and the 4 Gpbs HBAs only add 0.03 to 0.04 ms to an access (assuming interrupt Coalescing is disabled).  Our access time was 0.02 ms with our 2 Gbps controllers and 0.015 with our 4 Gbps controllers + transfer time (this varies by the block access size and link bandwidth for 13k and a 2 Gbps link it would be 13k/~200,000KB/s = 0.065 ms).  Adding the OS and oracle overhead and I would expect the 0.5 ms time.  There have been a lot of enhancements since then (largely concerning equipment that we do not control) that has allowed much lower write times.  

For the insert and commit loop the LGWR was definitely writing less than 1k per write.

Here is the some more data from the statspack report, I would be happy to send the whole report if you want it (our email format is firstname.lastinitial@ramsan.com).  We actually had Linux multipathing running and we were using linux mirroring on the RamSan volume, I may see what it looks like if we pull these component off and just duplex the logs.

Also if you are going to Oracle world the week after next I would be happy to chat there.

Thanks,
Jamon Bowen

&lt;code&gt;
WORKLOAD REPOSITORY report for

DB Name&#160; &#160; &#160; &#160; &#160;DB Id&#160; &#160; Instance&#160; &#160; &#160;Inst Num Release&#160; &#160; &#160;RAC Host
------------ ----------- ------------ -------- ----------- --- ------------
TMS3&#160; &#160; &#160; &#160; &#160; 2278435435 tms3&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 1 10.2.0.1.0&#160; NO&#160; amd-b63.texm

&#160; &#160; &#160; &#160; &#160; &#160; &#160; Snap Id&#160; &#160; &#160; Snap Time&#160; &#160; &#160; Sessions Curs/Sess
&#160; &#160; &#160; &#160; &#160; &#160; --------- ------------------- -------- ---------
Begin Snap:&#160; &#160; &#160; 2348 23-Oct-07 13:10:50&#160; &#160; &#160; &#160; 18&#160; &#160; &#160; &#160;3.5
&#160; End Snap:&#160; &#160; &#160; 2349 23-Oct-07 13:20:50&#160; &#160; &#160; &#160; 18&#160; &#160; &#160; &#160;3.5
&#160; &#160;Elapsed:&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;10.00 (mins)
&#160; &#160;DB Time:&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 9.77 (mins)

Cache Sizes
~~~~~~~~~~~&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;Begin&#160; &#160; &#160; &#160; End
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;---------- ----------
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;Buffer Cache:&#160; &#160; &#160; &#160;392M&#160; &#160; &#160; &#160;392M&#160; Std Block Size:&#160; &#160; &#160; &#160; &#160;8K
&#160; &#160; &#160; &#160; &#160; &#160;Shared Pool Size:&#160; &#160; &#160; &#160;104M&#160; &#160; &#160; &#160;104M&#160; &#160; &#160; Log Buffer:&#160; &#160; &#160;6,216K

Load Profile
~~~~~~~~~~~~&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Per Second&#160; &#160; &#160; &#160;Per Transaction
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;---------------&#160; &#160; &#160; &#160;---------------
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Redo size:&#160; &#160; &#160; &#160; &#160; 5,168,779.51&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 511.66
&#160; &#160; &#160; &#160; &#160; &#160; &#160; Logical reads:&#160; &#160; &#160; &#160; &#160; &#160; &#160;36,451.85&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 3.61
&#160; &#160; &#160; &#160; &#160; &#160; &#160; Block changes:&#160; &#160; &#160; &#160; &#160; &#160; &#160;40,490.35&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 4.01
&#160; &#160; &#160; &#160; &#160; &#160; &#160;Physical reads:&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 1.02&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.00
&#160; &#160; &#160; &#160; &#160; &#160; Physical writes:&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 194.54&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.02
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;User calls:&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.10&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.00
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;Parses:&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 1.37&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.00
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Hard parses:&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.00&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.00
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Sorts:&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.59&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.00
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;Logons:&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.03&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0.00
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;Executes:&#160; &#160; &#160; &#160; &#160; &#160; &#160;10,104.30&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 1.00
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;Transactions:&#160; &#160; &#160; &#160; &#160; &#160; &#160;10,102.02

&#160; % Blocks changed per Read:&#160; 111.08&#160; &#160; Recursive Call %:&#160; &#160;100.00
 Rollback per transaction %:&#160; &#160; 0.00&#160; &#160; &#160; &#160;Rows per Sort:&#160; &#160; 23.08

Instance Efficiency Percentages (Target 100%)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&#160; &#160; &#160; &#160; &#160; &#160; Buffer Nowait %:&#160; 100.00&#160; &#160; &#160; &#160;Redo NoWait %:&#160; 100.00
&#160; &#160; &#160; &#160; &#160; &#160; Buffer&#160; Hit&#160; &#160;%:&#160; 100.00&#160; &#160; In-memory Sort %:&#160; 100.00
&#160; &#160; &#160; &#160; &#160; &#160; Library Hit&#160; &#160;%:&#160; 100.00&#160; &#160; &#160; &#160; Soft Parse %:&#160; 100.00
&#160; &#160; &#160; &#160; &#160;Execute to Parse %:&#160; &#160;99.99&#160; &#160; &#160; &#160; &#160;Latch Hit %:&#160; &#160;99.97
Parse CPU to Parse Elapsd %:&#160; &#160; &#160; &#160; &#160; &#160; &#160;% Non-Parse CPU:&#160; 100.00

 Shared Pool Statistics&#160; &#160; &#160; &#160; Begin&#160; &#160; End
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; ------&#160; ------
&#160; &#160; &#160; &#160; &#160; &#160; &#160;Memory Usage %:&#160; &#160;94.67&#160; &#160;94.67
&#160; &#160; % SQL with executions&gt;1:&#160; &#160;71.31&#160; &#160;72.73
&#160; % Memory for SQL w/exec&gt;1:&#160; &#160;61.76&#160; &#160;61.91

Top 5 Timed Events&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;Avg %Total
~~~~~~~~~~~~~~~~~~&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; wait&#160; &#160;Call
Event&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;Waits&#160; Time (s)&#160; &#160;(ms)&#160; &#160;Time Wait Class
------------------------------ ---------- --------- ------ ------ ----------
CPU time&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 520&#160; &#160; &#160; &#160; &#160; 88.7
log file parallel write&#160; &#160; &#160; &#160; &#160;4,012,597&#160; &#160; &#160; &#160;429&#160; &#160; &#160; 0&#160; &#160;73.1 System I/O
log file switch completion&#160; &#160; &#160; &#160; &#160; &#160; 191&#160; &#160; &#160; &#160; 41&#160; &#160; 212&#160; &#160; 6.9 Configurat
log file switch (checkpoint in&#160; &#160; &#160; &#160; &#160;82&#160; &#160; &#160; &#160; 31&#160; &#160; 383&#160; &#160; 5.4 Configurat
LGWR wait for redo copy&#160; &#160; &#160; &#160; &#160; &#160;291,581&#160; &#160; &#160; &#160; &#160;1&#160; &#160; &#160; 0&#160; &#160; 0.2&#160; &#160; &#160; Other
&#160; &#160; &#160; &#160; &#160; ---------------------------------------------------------

Statistic&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;Total&#160; &#160; &#160;per Second&#160; &#160;per Trans
-------------------------------- ---------------- -------------- -----------
physical write bytes&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 956,456,960&#160; &#160; 1,593,699.2&#160; &#160; &#160; &#160;157.8
physical write total IO requests&#160; &#160; &#160; &#160; 4,021,945&#160; &#160; &#160; &#160; 6,701.6&#160; &#160; &#160; &#160; &#160;0.7
physical write total bytes&#160; &#160; &#160; &#160; &#160; 4,987,928,576&#160; &#160; 8,311,150.4&#160; &#160; &#160; &#160;822.7
physical write total multi block&#160; &#160; &#160; &#160; 3,423,986&#160; &#160; &#160; &#160; 5,705.2&#160; &#160; &#160; &#160; &#160;0.6
physical writes&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;116,755&#160; &#160; &#160; &#160; &#160; 194.5&#160; &#160; &#160; &#160; &#160;0.0
physical writes direct&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 415&#160; &#160; &#160; &#160; &#160; &#160; 0.7&#160; &#160; &#160; &#160; &#160;0.0
physical writes direct (lob)&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0&#160; &#160; &#160; &#160; &#160; &#160; 0.0&#160; &#160; &#160; &#160; &#160;0.0
physical writes direct temporary&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0&#160; &#160; &#160; &#160; &#160; &#160; 0.0&#160; &#160; &#160; &#160; &#160;0.0
physical writes from cache&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 116,340&#160; &#160; &#160; &#160; &#160; 193.9&#160; &#160; &#160; &#160; &#160;0.0
physical writes non checkpoint&#160; &#160; &#160; &#160; &#160; &#160; 114,196&#160; &#160; &#160; &#160; &#160; 190.3&#160; &#160; &#160; &#160; &#160;0.0
pinned buffers inspected&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0&#160; &#160; &#160; &#160; &#160; &#160; 0.0&#160; &#160; &#160; &#160; &#160;0.0
prefetch warmup blocks aged out&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;0&#160; &#160; &#160; &#160; &#160; &#160; 0.0&#160; &#160; &#160; &#160; &#160;0.0
prefetched blocks aged out befor&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0&#160; &#160; &#160; &#160; &#160; &#160; 0.0&#160; &#160; &#160; &#160; &#160;0.0
process last non-idle time&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 0&#160; &#160; &#160; &#160; &#160; &#160; 0.0&#160; &#160; &#160; &#160; &#160;0.0
recursive calls&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 18,194,819&#160; &#160; &#160; &#160;30,317.2&#160; &#160; &#160; &#160; &#160;3.0
recursive cpu usage&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 43,813&#160; &#160; &#160; &#160; &#160; &#160;73.0&#160; &#160; &#160; &#160; &#160;0.0
redo blocks written&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;7,726,344&#160; &#160; &#160; &#160;12,874.0&#160; &#160; &#160; &#160; &#160;1.3
redo buffer allocation retries&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 146&#160; &#160; &#160; &#160; &#160; &#160; 0.2&#160; &#160; &#160; &#160; &#160;0.0
redo entries&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 8,606,700&#160; &#160; &#160; &#160;14,340.9&#160; &#160; &#160; &#160; &#160;1.4
redo log space requests&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;323&#160; &#160; &#160; &#160; &#160; &#160; 0.5&#160; &#160; &#160; &#160; &#160;0.0
redo log space wait time&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 7,366&#160; &#160; &#160; &#160; &#160; &#160;12.3&#160; &#160; &#160; &#160; &#160;0.0
redo ordering marks&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 38,362&#160; &#160; &#160; &#160; &#160; &#160;63.9&#160; &#160; &#160; &#160; &#160;0.0
redo size&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;3,102,037,856&#160; &#160; 5,168,779.5&#160; &#160; &#160; &#160;511.7
redo synch time&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;0&#160; &#160; &#160; &#160; &#160; &#160; 0.0&#160; &#160; &#160; &#160; &#160;0.0
redo synch writes&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;166&#160; &#160; &#160; &#160; &#160; &#160; 0.3&#160; &#160; &#160; &#160; &#160;0.0
redo wastage&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 727,552,932&#160; &#160; 1,212,287.2&#160; &#160; &#160; &#160;120.0
redo write time&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 46,272&#160; &#160; &#160; &#160; &#160; &#160;77.1&#160; &#160; &#160; &#160; &#160;0.0
redo writer latching time&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;370&#160; &#160; &#160; &#160; &#160; &#160; 0.6&#160; &#160; &#160; &#160; &#160;0.0
redo writes&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;4,012,526&#160; &#160; &#160; &#160; 6,685.9&#160; &#160; &#160; &#160; &#160;0.7
&lt;/code&gt;]]></description>
		<content:encoded><![CDATA[<p>Hi Lewis and Alex,</p>
<p>I am glad to see that this post has blossomed quite a bit since my post.  One quick side note &#8211; the disk in your Laptop is battery backed (by the laptop battery :) ).</p>
<p>I am glad that you found the setting to disable the write cache on the disk as I think it helps explain more clearly that when you are testing memory access on any device there is no easy way to predict what the performance will be without testing.</p>
<p>A quick note on Alex&#8217;s comment on RamSan performance, our write time is the sum of RamSan access time + HBA driver/Asic access Latency + OS/application access latency.  For a few years back on an HPUX platform I would guess that a 2 Gbps HBA was used in the server.  I end up doing a lot of FC performance testing and there have been dramatic advances in the access latency of 4 Gbps HBAs vs 2 Gbps HBAs.  The 2 Gbps HBAs tended to add 0.2-0.3 ms to an access and the 4 Gpbs HBAs only add 0.03 to 0.04 ms to an access (assuming interrupt Coalescing is disabled).  Our access time was 0.02 ms with our 2 Gbps controllers and 0.015 with our 4 Gbps controllers + transfer time (this varies by the block access size and link bandwidth for 13k and a 2 Gbps link it would be 13k/~200,000KB/s = 0.065 ms).  Adding the OS and oracle overhead and I would expect the 0.5 ms time.  There have been a lot of enhancements since then (largely concerning equipment that we do not control) that has allowed much lower write times.  </p>
<p>For the insert and commit loop the LGWR was definitely writing less than 1k per write.</p>
<p>Here is the some more data from the statspack report, I would be happy to send the whole report if you want it (our email format is <a href="mailto:firstname.lastinitial@ramsan.com">firstname.lastinitial@ramsan.com</a>).  We actually had Linux multipathing running and we were using linux mirroring on the RamSan volume, I may see what it looks like if we pull these component off and just duplex the logs.</p>
<p>Also if you are going to Oracle world the week after next I would be happy to chat there.</p>
<p>Thanks,<br />
Jamon Bowen</p>
<p><code><br />
WORKLOAD REPOSITORY report for</p>
<p>DB Name&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DB Id&nbsp; &nbsp; Instance&nbsp; &nbsp; &nbsp;Inst Num Release&nbsp; &nbsp; &nbsp;RAC Host<br />
------------ ----------- ------------ -------- ----------- --- ------------<br />
TMS3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2278435435 tms3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 10.2.0.1.0&nbsp; NO&nbsp; amd-b63.texm</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Snap Id&nbsp; &nbsp; &nbsp; Snap Time&nbsp; &nbsp; &nbsp; Sessions Curs/Sess<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --------- ------------------- -------- ---------<br />
Begin Snap:&nbsp; &nbsp; &nbsp; 2348 23-Oct-07 13:10:50&nbsp; &nbsp; &nbsp; &nbsp; 18&nbsp; &nbsp; &nbsp; &nbsp;3.5<br />
&nbsp; End Snap:&nbsp; &nbsp; &nbsp; 2349 23-Oct-07 13:20:50&nbsp; &nbsp; &nbsp; &nbsp; 18&nbsp; &nbsp; &nbsp; &nbsp;3.5<br />
&nbsp; &nbsp;Elapsed:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;10.00 (mins)<br />
&nbsp; &nbsp;DB Time:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 9.77 (mins)</p>
<p>Cache Sizes<br />
~~~~~~~~~~~&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Begin&nbsp; &nbsp; &nbsp; &nbsp; End<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;---------- ----------<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Buffer Cache:&nbsp; &nbsp; &nbsp; &nbsp;392M&nbsp; &nbsp; &nbsp; &nbsp;392M&nbsp; Std Block Size:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;8K<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Shared Pool Size:&nbsp; &nbsp; &nbsp; &nbsp;104M&nbsp; &nbsp; &nbsp; &nbsp;104M&nbsp; &nbsp; &nbsp; Log Buffer:&nbsp; &nbsp; &nbsp;6,216K</p>
<p>Load Profile<br />
~~~~~~~~~~~~&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Per Second&nbsp; &nbsp; &nbsp; &nbsp;Per Transaction<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;---------------&nbsp; &nbsp; &nbsp; &nbsp;---------------<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Redo size:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 5,168,779.51&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 511.66<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Logical reads:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;36,451.85&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3.61<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Block changes:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;40,490.35&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 4.01<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Physical reads:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1.02&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.00<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Physical writes:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 194.54&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.02<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;User calls:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.10&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.00<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Parses:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1.37&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.00<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Hard parses:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.00&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.00<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Sorts:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.59&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.00<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Logons:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.03&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.00<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Executes:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;10,104.30&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1.00<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Transactions:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;10,102.02</p>
<p>&nbsp; % Blocks changed per Read:&nbsp; 111.08&nbsp; &nbsp; Recursive Call %:&nbsp; &nbsp;100.00<br />
 Rollback per transaction %:&nbsp; &nbsp; 0.00&nbsp; &nbsp; &nbsp; &nbsp;Rows per Sort:&nbsp; &nbsp; 23.08</p>
<p>Instance Efficiency Percentages (Target 100%)<br />
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Buffer Nowait %:&nbsp; 100.00&nbsp; &nbsp; &nbsp; &nbsp;Redo NoWait %:&nbsp; 100.00<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Buffer&nbsp; Hit&nbsp; &nbsp;%:&nbsp; 100.00&nbsp; &nbsp; In-memory Sort %:&nbsp; 100.00<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Library Hit&nbsp; &nbsp;%:&nbsp; 100.00&nbsp; &nbsp; &nbsp; &nbsp; Soft Parse %:&nbsp; 100.00<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Execute to Parse %:&nbsp; &nbsp;99.99&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Latch Hit %:&nbsp; &nbsp;99.97<br />
Parse CPU to Parse Elapsd %:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;% Non-Parse CPU:&nbsp; 100.00</p>
<p> Shared Pool Statistics&nbsp; &nbsp; &nbsp; &nbsp; Begin&nbsp; &nbsp; End<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ------&nbsp; ------<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Memory Usage %:&nbsp; &nbsp;94.67&nbsp; &nbsp;94.67<br />
&nbsp; &nbsp; % SQL with executions&gt;1:&nbsp; &nbsp;71.31&nbsp; &nbsp;72.73<br />
&nbsp; % Memory for SQL w/exec&gt;1:&nbsp; &nbsp;61.76&nbsp; &nbsp;61.91</p>
<p>Top 5 Timed Events&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Avg %Total<br />
~~~~~~~~~~~~~~~~~~&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; wait&nbsp; &nbsp;Call<br />
Event&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Waits&nbsp; Time (s)&nbsp; &nbsp;(ms)&nbsp; &nbsp;Time Wait Class<br />
------------------------------ ---------- --------- ------ ------ ----------<br />
CPU time&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 520&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 88.7<br />
log file parallel write&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;4,012,597&nbsp; &nbsp; &nbsp; &nbsp;429&nbsp; &nbsp; &nbsp; 0&nbsp; &nbsp;73.1 System I/O<br />
log file switch completion&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 191&nbsp; &nbsp; &nbsp; &nbsp; 41&nbsp; &nbsp; 212&nbsp; &nbsp; 6.9 Configurat<br />
log file switch (checkpoint in&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;82&nbsp; &nbsp; &nbsp; &nbsp; 31&nbsp; &nbsp; 383&nbsp; &nbsp; 5.4 Configurat<br />
LGWR wait for redo copy&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;291,581&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1&nbsp; &nbsp; &nbsp; 0&nbsp; &nbsp; 0.2&nbsp; &nbsp; &nbsp; Other<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ---------------------------------------------------------</p>
<p>Statistic&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Total&nbsp; &nbsp; &nbsp;per Second&nbsp; &nbsp;per Trans<br />
-------------------------------- ---------------- -------------- -----------<br />
physical write bytes&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 956,456,960&nbsp; &nbsp; 1,593,699.2&nbsp; &nbsp; &nbsp; &nbsp;157.8<br />
physical write total IO requests&nbsp; &nbsp; &nbsp; &nbsp; 4,021,945&nbsp; &nbsp; &nbsp; &nbsp; 6,701.6&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.7<br />
physical write total bytes&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 4,987,928,576&nbsp; &nbsp; 8,311,150.4&nbsp; &nbsp; &nbsp; &nbsp;822.7<br />
physical write total multi block&nbsp; &nbsp; &nbsp; &nbsp; 3,423,986&nbsp; &nbsp; &nbsp; &nbsp; 5,705.2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.6<br />
physical writes&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;116,755&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 194.5&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
physical writes direct&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 415&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
physical writes direct (lob)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
physical writes direct temporary&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
physical writes from cache&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 116,340&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 193.9&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
physical writes non checkpoint&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 114,196&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 190.3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
pinned buffers inspected&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
prefetch warmup blocks aged out&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
prefetched blocks aged out befor&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
process last non-idle time&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
recursive calls&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 18,194,819&nbsp; &nbsp; &nbsp; &nbsp;30,317.2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3.0<br />
recursive cpu usage&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 43,813&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;73.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
redo blocks written&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;7,726,344&nbsp; &nbsp; &nbsp; &nbsp;12,874.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1.3<br />
redo buffer allocation retries&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 146&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
redo entries&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 8,606,700&nbsp; &nbsp; &nbsp; &nbsp;14,340.9&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1.4<br />
redo log space requests&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;323&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.5&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
redo log space wait time&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 7,366&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;12.3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
redo ordering marks&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 38,362&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;63.9&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
redo size&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3,102,037,856&nbsp; &nbsp; 5,168,779.5&nbsp; &nbsp; &nbsp; &nbsp;511.7<br />
redo synch time&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
redo synch writes&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;166&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
redo wastage&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 727,552,932&nbsp; &nbsp; 1,212,287.2&nbsp; &nbsp; &nbsp; &nbsp;120.0<br />
redo write time&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 46,272&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;77.1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
redo writer latching time&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;370&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.6&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />
redo writes&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;4,012,526&nbsp; &nbsp; &nbsp; &nbsp; 6,685.9&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.7<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stewart Forgie</title>
		<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23408</link>
		<dc:creator><![CDATA[Stewart Forgie]]></dc:creator>
		<pubDate>Mon, 29 Oct 2007 16:17:27 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23408</guid>
		<description><![CDATA[Hi Jonathan and all,
the disk caching side of this conversation is something that has bothered me for sometime (I run Oracle on Linux).  

I previously thought that the LGWR process would *always* guarantee my redo log changes were written directly to disk once I had committed. In other words, once LGWR had made its I/O request and returned to my session, my changes were safe.

However, after investigation, apparently LGWR writes to disk (under Linux) using an I/O feature called DIRECT IO.  After checking with Oracle and Redhat, DIRECT IO only bypasses the Redhat O/S I/O caching mechanism. It does not instruct the hardware to bypass any subsequent I/O controller caching or Physical disk caching.  

Therefore to be really sure that your changes are actually written to disk, you need to investigate the caching aspect of each hardware component between your server and physical storage! 

Stewart]]></description>
		<content:encoded><![CDATA[<p>Hi Jonathan and all,<br />
the disk caching side of this conversation is something that has bothered me for sometime (I run Oracle on Linux).  </p>
<p>I previously thought that the LGWR process would *always* guarantee my redo log changes were written directly to disk once I had committed. In other words, once LGWR had made its I/O request and returned to my session, my changes were safe.</p>
<p>However, after investigation, apparently LGWR writes to disk (under Linux) using an I/O feature called DIRECT IO.  After checking with Oracle and Redhat, DIRECT IO only bypasses the Redhat O/S I/O caching mechanism. It does not instruct the hardware to bypass any subsequent I/O controller caching or Physical disk caching.  </p>
<p>Therefore to be really sure that your changes are actually written to disk, you need to investigate the caching aspect of each hardware component between your server and physical storage! </p>
<p>Stewart</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Gorbachev</title>
		<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23298</link>
		<dc:creator><![CDATA[Alex Gorbachev]]></dc:creator>
		<pubDate>Sun, 28 Oct 2007 04:33:03 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23298</guid>
		<description><![CDATA[To add some more statistics regarding RamSan disks. I had some experience with them.

From that project, we could achieve 0.5 ms write for about 13K write for LGWR (8K block read if interesting was about the same 0.4-0.5 ms). Response time wasn&#039;t impacted by number of IOs but had some correlation with IO size. It was HP-UX PA-RISC platform and we used Oracle 9i with Veritas storage stack (and it was couple years ago as well). We used host based mirroring across two RamSan boxes and without it - same response time.

To be fair, we allocated redo logs from 4 way striped volume from EMC and we had about 0.7 ms write time but (and here goes a big BUT) we observed some instability and as far as I could recall it was due to cache saturation in some circumstances.

In more recent experience, during one RAC load testing project, I used RAM disk mounted by RAC nodes via NFS and few kilobytes writes and reads were stable in the range of 0.3 ms. I was quite pleased with such NFS performance. To be fair, it wasn&#039;t a regular 1 GB Ethernet - proprietary high-speed &quot;fabric&quot; as vendor calls it.

I couldn&#039;t get 0.1 ms for LGWR write but I think it&#039;s because my writes were relatively large. In Jamon&#039;s somewhat artificial case, LGWR write size was probably in the range of 512 bytes to 1K. There is no statspack report time-frame but I assume that one commit caused about half to one LGWR write since it&#039;s performance was dazzling fast. If Jamon is reading this comment, it would be nice of him to provide LGWR write size from that case.]]></description>
		<content:encoded><![CDATA[<p>To add some more statistics regarding RamSan disks. I had some experience with them.</p>
<p>From that project, we could achieve 0.5 ms write for about 13K write for LGWR (8K block read if interesting was about the same 0.4-0.5 ms). Response time wasn&#8217;t impacted by number of IOs but had some correlation with IO size. It was HP-UX PA-RISC platform and we used Oracle 9i with Veritas storage stack (and it was couple years ago as well). We used host based mirroring across two RamSan boxes and without it &#8211; same response time.</p>
<p>To be fair, we allocated redo logs from 4 way striped volume from EMC and we had about 0.7 ms write time but (and here goes a big BUT) we observed some instability and as far as I could recall it was due to cache saturation in some circumstances.</p>
<p>In more recent experience, during one RAC load testing project, I used RAM disk mounted by RAC nodes via NFS and few kilobytes writes and reads were stable in the range of 0.3 ms. I was quite pleased with such NFS performance. To be fair, it wasn&#8217;t a regular 1 GB Ethernet &#8211; proprietary high-speed &#8220;fabric&#8221; as vendor calls it.</p>
<p>I couldn&#8217;t get 0.1 ms for LGWR write but I think it&#8217;s because my writes were relatively large. In Jamon&#8217;s somewhat artificial case, LGWR write size was probably in the range of 512 bytes to 1K. There is no statspack report time-frame but I assume that one commit caused about half to one LGWR write since it&#8217;s performance was dazzling fast. If Jamon is reading this comment, it would be nice of him to provide LGWR write size from that case.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23264</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Sat, 27 Oct 2007 19:10:36 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23264</guid>
		<description><![CDATA[Alberto, Good thought - I only got as far as the &quot;surely it&#039;s a stream&quot;.

Val, I was assuming that the dump would be a screamingly fast sequential dump - so I was expecting the cache to be irrelevant after the first couple of seconds even if it were on. But a small lag for compression would explain why my hibernate results were consistent with your log writer results.

Given the time I spend getting on and off trains, planes and whatever the third one was, I think I&#039;ll have the cache ON most of the time, and remember to switch it off for critical collision tests.
]]></description>
		<content:encoded><![CDATA[<p>Alberto, Good thought &#8211; I only got as far as the &#8220;surely it&#8217;s a stream&#8221;.</p>
<p>Val, I was assuming that the dump would be a screamingly fast sequential dump &#8211; so I was expecting the cache to be irrelevant after the first couple of seconds even if it were on. But a small lag for compression would explain why my hibernate results were consistent with your log writer results.</p>
<p>Given the time I spend getting on and off trains, planes and whatever the third one was, I think I&#8217;ll have the cache ON most of the time, and remember to switch it off for critical collision tests.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alberto Dell'Era</title>
		<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23260</link>
		<dc:creator><![CDATA[Alberto Dell'Era]]></dc:creator>
		<pubDate>Sat, 27 Oct 2007 18:51:21 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23260</guid>
		<description><![CDATA[Val, the only users are the dev Oracle instance, they don&#039;t commit frequently, and the buffer cache already makes for a nice safe write-back cache; those electronic users will suffer a lot if they can&#039;t open their beloved databases due to a &quot;stuck recovery&quot; error (caused by a data block being physically written from the on-board disk cache before the redo protecting it, and a power outage happening in-between) or simply a corrupted block of, say, sys.tab$ (caused by the db_block_size being greater than the typical sector size, 512 bytes, which is the only thing of which the disk drive guarantees write atomicity). 

Jonathan, I was surprised initially since an hibernate dump of the system RAM should provide a continuous stream of sequential bytes, and sector interleave should cater for the small time it should take Windows to initiate the next sequential write. But I have researched a bit and discovered that XP makes &lt;i&gt;compressed&lt;/i&gt; writes, so probably the time it takes to compress the next write is enough to make the disk spin over the next interleaved sector.]]></description>
		<content:encoded><![CDATA[<p>Val, the only users are the dev Oracle instance, they don&#8217;t commit frequently, and the buffer cache already makes for a nice safe write-back cache; those electronic users will suffer a lot if they can&#8217;t open their beloved databases due to a &#8220;stuck recovery&#8221; error (caused by a data block being physically written from the on-board disk cache before the redo protecting it, and a power outage happening in-between) or simply a corrupted block of, say, sys.tab$ (caused by the db_block_size being greater than the typical sector size, 512 bytes, which is the only thing of which the disk drive guarantees write atomicity). </p>
<p>Jonathan, I was surprised initially since an hibernate dump of the system RAM should provide a continuous stream of sequential bytes, and sector interleave should cater for the small time it should take Windows to initiate the next sequential write. But I have researched a bit and discovered that XP makes <i>compressed</i> writes, so probably the time it takes to compress the next write is enough to make the disk spin over the next interleaved sector.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Val Carey</title>
		<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23251</link>
		<dc:creator><![CDATA[Val Carey]]></dc:creator>
		<pubDate>Sat, 27 Oct 2007 18:03:39 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23251</guid>
		<description><![CDATA[&quot;With caching disabled it takes about four minutes for my laptop to hibernate. With caching enabled it takes about 30 seconds.&quot;

It matches the simple benchmarking I&#039;ve just run.  On my laptop, with WCE (write cache enabled) I get 20MB/s throughput for 64K OS-cache-bypass writes;  without WCE I get only 3.6 MB/s. 

I wonder how Linux running on a laptop handles WCE.]]></description>
		<content:encoded><![CDATA[<p>&#8220;With caching disabled it takes about four minutes for my laptop to hibernate. With caching enabled it takes about 30 seconds.&#8221;</p>
<p>It matches the simple benchmarking I&#8217;ve just run.  On my laptop, with WCE (write cache enabled) I get 20MB/s throughput for 64K OS-cache-bypass writes;  without WCE I get only 3.6 MB/s. </p>
<p>I wonder how Linux running on a laptop handles WCE.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Val Carey</title>
		<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23249</link>
		<dc:creator><![CDATA[Val Carey]]></dc:creator>
		<pubDate>Sat, 27 Oct 2007 17:30:36 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23249</guid>
		<description><![CDATA[&quot;So, I think I’m going to disable Write Caching on all my Windows instances, even if they are just development ones - unless I’m 100% confident that the on-board disk caches are battery-backed.
&quot;

That&#039;s a brave decision,  I hope your users will have mercy on you after they have experience potentially severe performance problems ;)]]></description>
		<content:encoded><![CDATA[<p>&#8220;So, I think I’m going to disable Write Caching on all my Windows instances, even if they are just development ones &#8211; unless I’m 100% confident that the on-board disk caches are battery-backed.<br />
&#8221;</p>
<p>That&#8217;s a brave decision,  I hope your users will have mercy on you after they have experience potentially severe performance problems ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23246</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Sat, 27 Oct 2007 16:28:07 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/10/19/ssd/#comment-23246</guid>
		<description><![CDATA[Here&#039;s an interesting side effect. With caching disabled it takes about four minutes for my laptop to hibernate. With caching enabled it takes about 30 seconds.]]></description>
		<content:encoded><![CDATA[<p>Here&#8217;s an interesting side effect. With caching disabled it takes about four minutes for my laptop to hibernate. With caching enabled it takes about 30 seconds.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
