| |
 |
|
Oracle disk I/O throughput speed
Oracle Tips by Burleson Consulting |
In a nutshell, an Oracle database is a mechanism
to store and retrieve large volumes of data, and many end-users
visualize Oracle as a big electronic filing cabinet.
This filing cabinet must be fast and people
have come to expect sub-second response time. These instant
response time expectations are driven by tools like Google that can
scan a billion web sites for keywords in a fraction of a second.
But how do you make your Oracle system as fast
as Google? Speed is all about delivering the goods, and
serving-up the data.
Even while
64-bit
technology and the accompanying large data buffers has reduced
disk I/O bottlenecks, many database remain I/O-bound. You can
easily know if your database has significant disk I/O if your AWR of
STATSPACK reports shows top-5 wait events that contain "db
file sequential reads" (single I/O fetches) or "db_file_scattered_reads"
(db_file_multiblock_read_count
I/O fetches).
The standard measurement for disk is
megabytes per second (MBps) and gigabytes per second
(GBPS) and you can make your I/O faster by moving to a faster disk,
using SSD, or caching the data inside large data buffers.
Let's explore the relative speeds of disk
storage. A PC laptop transfers data at about 15 MBps and the
fastest disk for a PC is solid-state disk at 400 MBps. In the
larger server arena, we see SSD twice as fast as platter disk, with
platter-based disk speeds ranging from 200-800 MBPS.
Large Server disk I/O speeds:
This
is a list of disk I/O speeds in descending order, and, SSD leads the
way for tertiary storage devices:
-
50 MBps
- IEEE1394 is the standard designation for a very fast external
bus standard that supports data transfer rates of up to 400 Mbps
(in 1394a) and 800 Mbps over copper (in 1394b). IEEE1394 a, in
its peer-to-peer bus topology, allows 100 to 400 Mbps data
transfer rates for up to 63 nodes, allowing 16 hops at 4.5
meters per hop.
-
100 MBps
- IEEE1394 b allows for higher speeds and longer distances.
IEEE1394 b is completely compatible with IEEE1394 a providing up
to 800 Mbps to 3200 Mbps data transfer over 4.5 meter copper and
100 Mbps over 100 meter copper. If used with Category 5 UTP
wiring you can get 400 Mbps over 100 meter plastic optical fiber
and 3200 Mbps over 100 meters of glass optical fiber.
-
266 MBps
-
The Apple Xserve RAID’s list price for 5.6 TB is $12,999, or
$2.32 per GB. Its performance is excellent. For a workload of
8KB random reads, it can sustain 1100 I/Os per second (IOPS).
For a multi-user sequential workload, it can sustain 266 MBps of
read throughput.
-
1,600 MBps -
SSD
leads the pack in data transfer rates and speed (500,000
I/O's per second)
PC Oracle disk speeds:
-
400-500 MBps - See Texas
Memory Systems SSD devices.
-
50-70 MBps - PC laptop SSD - Samsung
says the SSD's outperforms a comparably sized HDD by more than
150 per cent. The company quotes the storage disk as reading
data at 57 Mbytes per second (MBps) and writes at 32MBps.
Maximum Large MBPS=18.27
Maximum Large MBPS=25.65
Maximum Large MBPS=18.27
In sum, most disk deliver data in the range of
200-800 MBPS and SSD can often halve the disk I/O latency.
Disk enqueues can occur when the disk is unable to quickly service concurrent
requests. Super-large disks can be problematic, and the most popular
Oracle data files can be placed on the middle absolute track of the device to
minimize read-write head movement.

Disk I/O speed
references:
This article from Mike Ault's book "Oracle
Disk I/O Tuning,
Disk IO Performance & Optimization for Oracle Databases", and
great article by Doug Burns in "Doug's
Oracle Blog". These excerpts provide disk I/O speed
comparisons. Also, this informative
SSD Speed
page has details on solid-state disk technology.
Seeing disk I/O speed using
STATSPACK
Here is sample
output from a real system showing an empirical
sample of average disk I/O speed. We always expert
scattered reads (full-table scans) to be far
faster than sequential reads (index probes)
because of Oracle sequential prefetch (db_file_multiblock_read_count):
col c1 heading 'Average Waits for|Full Scan Read
I/O' format 9999.999
col c2 heading 'Average Waits for|Index Read
I/O' format 9999.999
col c3 heading 'Percent of| I/O Waits|for
scattered|Full Scans' format 9.99
col c4 heading 'Percent of| I/O Waits|for
sequential|Index Scans' format 9.99
col c5 heading 'Starting|Value|for|optimizer|index|cost|adj'
format 999
select
sum(a.time_waited_micro)/sum(a.total_waits)/1000000 c1,
sum(b.time_waited_micro)/sum(b.total_waits)/1000000 c2,
(
sum(a.total_waits) /
sum(a.total_waits + b.total_waits)
) * 100 c3,
(
sum(b.total_waits) /
sum(a.total_waits + b.total_waits)
) * 100 c4,
(
sum(b.time_waited_micro) /
sum(b.total_waits)) /
(sum(a.time_waited_micro)/sum(a.total_waits)
) * 100 c5
from
dba_hist_system_event a,
dba_hist_system_event b
where
a.snap_id = b.snap_id
and
a.event_name = 'db file scattered read'
and
b.event_name = 'db file sequential read';
- scattered read
(full table scans) are fast at 13ms (c3)
- sequential reads (index probes) take much
longer 86ms (c4)
-
starting setting for optimizer_index_cost_adj at
36:
C1 C2 C3 C4 C5
---------- ---------- ---------- ----------
----------
13,824 5,072
13 86
36
Here is another
variant, showing changes to
optimizer_index_cost_adj wait components over
time:
set pages 80
set lines 130
col c1 heading 'Average Waits for|Full Scan Read
I/O' format 999999.999
col c2 heading 'Average Waits for|Index Read I/O'
format 999999.999
col c3 heading 'Percent of| I/O Waits|for
scattered|Full Scans' format
999.99
col c4 heading 'Percent of| I/O Waits|for
sequential|Index Scans' format
999.99
col c5 heading 'Starting|Value|for|optimizer|index|cost|adj'
format 99999
select a.snap_id "Snap",
sum(a.time_waited_micro)/sum(a.total_waits)/10000
c1,
sum(b.time_waited_micro)/sum(b.total_waits)/10000
c2,
(sum(a.total_waits) / sum(a.total_waits +
b.total_waits)) * 100 c3,
(sum(b.total_waits) / sum(a.total_waits +
b.total_waits)) * 100 c4,
(sum(b.time_waited_micro)/sum(b.total_waits))
/
(sum(a.time_waited_micro)/sum(a.total_waits)) * 100
c5
from
dba_hist_system_event a,
dba_hist_system_event b
where a.snap_id = b.snap_id
and a.event_name = 'db file scattered read'
and b.event_name = 'db file sequential read'
group by a.snap_id
order by 1
/
Snap Full Scan Read I/O Index Read I/O
Full Scans Index Scans
---------- ------------------ -----------------
------------- --------------
5079 .936
.074 10.14 89.86
5080 .936
.074 10.14 89.86
5081 .936
.074 10.14 89.86
5082 .936
.074 10.14 89.86
5083 .936
.074 10.13 89.87
5084 .936
.074 10.13 89.87
5085 .936
.074 10.13 89.87
2008 Market Survey of SSD vendors for
Oracle:
There are many vendors who offer rack-mount solid-state disk that
work with Oracle databases, and the competitive market ensures that
product offerings will continuously improve while prices fall.
SearchStorage notes that SSD is will soon replace platter disks and that
hundreds of SSD vendors may enter the market:
"The number of vendors in this category could rise to several
hundred in the next 3 years as enterprise users become more familiar
with the benefits of this type of storage."
As of June 2008, many of the major hardware vendors (including Sun and
EMC) are replacing slow disks with RAM-based disks, and
Sun announced that all
of their large servers will offer SSD.
As of June 2008, here are the major SSD vendors for Oracle databases
(vendors are listed alphabetically):
2008 rack mount SSD Performance Statistics
SearchStorage has done a comprehensive survey of rack mount SSD
vendors, and lists these SSD rack mount vendors, with this showing the
fastest rack-mount SSD devices (as of May 15, 2008):
|
manufacturer |
model |
technology |
interface |
performance metrics and notes |
|
Texas Memory Systems |
RamSan-400 |
RAM SSD |
Fibre
Channel
InfiniBand |
3,000MB/s random
sustained external throughput, 400,000 random IOPS |
|
Violin Memory |
Violin 1010 |
RAM SSD
|
PCIe |
1,400MB/s read,
1,00MB/s write with ×4 PCIe, 3 microseconds latency |
|
Solid Access Technologies |
USSD 200FC |
RAM SSD |
Fibre Channel
SAS
SCSI |
391MB/s random
sustained read or write per port (full duplex is 719MB/s), with
8 x 4Gbps FC ports aggregated throughput is approx 2,000MB/s,
320,000 IOPS |
|
Curtis |
HyperXCLR R1000 |
RAM SSD |
Fibre Channel
|
197MB/s sustained
R/W transfer rate, 35,000 IOPS |
Choosing the right SSD for Oracle
When evaluating SSD for Oracle databases you need
to consider performance (throughput and response time), reliability (Mean Time Between failures) and
TCO (total cost of ownership). Most SSD vendors will provide a
test RAM disk array for benchmark testing so that you can choose the
vendor who offers the best price/performance ratio.
Burleson Consulting does not partner with any SSD vendors and we
provide independent advice in this constantly-changing market. BC
was one of the earliest adopters of SSD for Oracle and we have been
deploying SSD on Oracle database since 2005 and we have experienced SSD
experts to help any Oracle shop evaluate whether SSD
is right for your application. BC experts can also help you choose
the SSD that is best for your database. Just
call 800-766-1884 or e-mail.:
for
SSD support details. |
|
|
Need an Oracle Health Check?
- Do you have
bad performance after an upgrade?
- Need to
certify that your database follows best practices?
BC Oracle performance gurus can quickly
certify every aspect of your
Oracle database and provide a complete verification that your database
is fully optimized. |

|
|