# db file parallel read faster on Linux than HP-UX?

I am still working on comparing performance between an HP-UX blade and a Linux virtual machine and I have a strange result.  I tried to come up with a simple example that would do a lot of single block I/O.  The test runs faster on my Linux system than my HP-UX system and I’m not sure why.  All of the parameters are the same, except the ones that contain the system name and filesystem names.  Both systems are 11.2.0.3.  The dramatic difference in run times corresponds to an equally dramatic difference in db file parallel read wait times.

I created a table called TEST and populated it with data and added an index called TESTI. I ran this query to generate a lot of single block I/O:

select /*+ index(test testi) */ sum(blocks) from test;

Here is the result on HP:

SUM(BLOCKS)
-----------
1485406208

Elapsed: 00:01:28.38

Statistics
----------------------------------------------------------
9  recursive calls
0  db block gets
3289143  consistent gets
125896  physical reads
86864  redo size
216  bytes sent via SQL*Net to client
248  bytes received via SQL*Net from client
2  SQL*Net roundtrips to/from client
0  sorts (memory)
0  sorts (disk)
1  rows processed

select EVENT,TOTAL_WAITS,TIME_WAITED,AVERAGE_WAIT
2  FROM V$SESSION_EVENT a 3 WHERE a.SID= :monitored_sid 4 order by time_waited desc; EVENT TOTAL_WAITS TIME_WAITED AVERAGE_WAIT ------------------------------ ----------- ----------- ------------ db file parallel read 4096 6760 1.65 db file sequential read 14526 236 .02 events in waitclass Other 1 28 28.49 SQL*Net message from client 19 5 .28 db file scattered read 5 3 .65 SQL*Net message to client 20 0 0 Disk file operations I/O 1 0 .01  Here is the same thing on Linux: SUM(BLOCKS) ----------- 958103552 Elapsed: 00:00:09.01 Statistics ---------------------------------------------------------- 9 recursive calls 0 db block gets 3289130 consistent gets 125872 physical reads 77244 redo size 353 bytes sent via SQL*Net to client 360 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed select EVENT,TOTAL_WAITS,TIME_WAITED,AVERAGE_WAIT 2 FROM V$SESSION_EVENT a
3  WHERE a.SID= :monitored_sid
4  order by time_waited desc;

EVENT                          TOTAL_WAITS TIME_WAITED AVERAGE_WAIT
------------------------------ ----------- ----------- ------------
db file parallel read                 4096          55          .01
events in waitclass Other                1          17        16.72
db file sequential read              14498          11            0
SQL*Net message from client             19           6          .31
db file scattered read                  15           0            0
SQL*Net message to client               20           0            0
Disk file operations I/O                 1           0            0


Something doesn’t seem right.  Surely there is some caching somewhere.  Is it really possible that the Linux version runs in 9 seconds while the HP one runs in a minute and a half?  Is it really true that db file parallel read is 1 hundredth of a second on HP and .01 hundredths of a second on Linux?

I’m still working on this but thought I would share the result since it is so strange.

Here is a zip of my scripts and their logs if you want to check them out: zip

– Bobby

p.s. Here are some possibly relevant parameters, same on both system:

compatible                   11.2.0.0.0
cpu_count                    4
db_block_size                8192
db_cache_size                512M
db_writer_processes          2
disk_asynch_io               FALSE
dispatchers                  (PROTOCOL=TCP)(DISPATCHERS=32)
filesystemio_options         ASYNCH
large_pool_size              32M
log_buffer                   2097152
max_shared_servers           12
pga_aggregate_target         5871947670
sga_max_size                 3G
sga_target                   3G
shared_pool_size             1G
shared_servers               12
star_transformation_enabled  FALSE


## About Bobby

I live in Chandler, Arizona with my wife and three daughters. I work for US Foods, the second largest food distribution company in the United States. I've been working as an Oracle database administrator and PeopleSoft administrator since 1994. I'm very interested in Oracle performance tuning.
This entry was posted in Uncategorized. Bookmark the permalink.

### 3 Responses to db file parallel read faster on Linux than HP-UX?

1. Andy W. says:

Async IO?

• Bobby says:

Asynch I/O is off. It was my first thought. I’m puzzled.