Bart Smaalders schrieb:
How big is the database?

After all the data has been loaded, all datafiles together 2.8GB, SGA 320MB. But I don't think size matters on this problem, since you can already see during the catalog creation phase that UFS is 2x faster.


Since oracle writes in small block sizes, did you set the recordsize for
ZFS?

recordsize is default (128K). Oracle uses:
db_block_size=8192
db_file_multi_block_read_count=16

I tried with "db_block_size=32768" but the results got worse.

I have just rerun the first parts of my benchmark (database + catalog creation) with different parameters.

The datafiles will be deleted before each run, so I assume if Oracle recreates the files again they will already use the modified zfs parameters (so I don't have to recreate the zpool/zfs).

Below the results (UFS again as the reference point):
UFS written as UFS(forcedirectio?,ufs:blocksize,oracle:db_block_size)
ZFS written as ZFS(zfs:compression,zfs:recordsize,oracle:db_block_size)

These results are now run with memory capping in effect (physmem=262144 (1GB))

                                db creation     catalog creation
UFS(-,8K,8K) [default]           0:41.851        6:17.530
UFS(forcedirectio,8K,8K)         0:40.479        6:03.688
UFS(forcedirectio,8K,32K)        0:48.718        8:19.359

ZFS(off,128K,8K) [default]       0:52.427       13:28.081
ZFS(on,128K,8K)                  0:50.791       14.27.919
ZFS(on,8K,8K)                    0:42.611       13:34.464
ZFS(off,32K,32K)                 1:40.038       15:35.177

(times in min:sec.msec)

So you will win a few percent, but still slower compared to UFS. UFS catalog creation is already mostly CPU bound: During the ~6 minutes of catalog creation time the corresponding oracle process consumes ~5:30 minutes of CPU time. So for UFS there is little margin for improvement.


If you have Oracle installed you can easily check yourself. I have uploaded my init.ora file and the DB creation script to
        http://www.deadcafe.de/perf/
Just modify the variables
. ADMIN (location of the oracle admin files)
. DBFILES (ZFS or UFS where datafiles should be placed)
. and the paths in init.ora

Benchmark results will be in "db.bench" file.


BTW: Why is maxphys still only 56 kByte by default on x86? I have increased maxphys to 8MB, but not much difference on the results:

                                db creation     catalog creation
ZFS(off,128K,8K) (*)             0:53.250       13:32.369

(*) maxphys = 8388608


Daniel
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to