Hi all,

There is no generic response for:
Is it better to have a "small SGA + big ZFS ARC" or "large SGA + small ZFS ARC"?

We can awser:
Have a large enough SGA do get good cache hit ratio (higher than 90 % for OLTP). Have some GB ZFS arc (Not less than 500M, usually more than 16GB is not usefull).

Then you have to tune. We know that ZFS cache help the database reads.
The cache strategies of ZFS and Oracle are different, and usually they help each other.

The is no reason to avoid to cache the same data twice.
Exemple:
Oracle query ask for a range scan on index. ZFS detect sequential reads and
start to prefetch the data. ZFS try to cache the data that Oracle will probably ask next.
When Oracle ask, the data is cache twice.
All the cache are dynamics.


The best knowned record size for an OLTP environment is :
Dataset         Recordsize
Table Data      8K (db_block_size)
Redo Logs       128K
Index   8K (db_block_size)
Undo
        128K
Temp
        128K


We still recommand a distinct zpool for redologs.

Regards.

Alain Chéreau


Enda O'Connor a écrit :
Richard Elling wrote:
On Sep 24, 2009, at 10:30 AM, Javier Conde wrote:

Hello,

Given the following configuration:

* Server with 12 SPARCVII CPUs  and 96 GB of RAM
* ZFS used as file system for Oracle data
* Oracle 10.2.0.4 with 1.7TB of data and indexes
* 1800 concurrents users with PeopleSoft Financial
* 20000 PeopleSoft transactions per day
* HDS USP1100 with LUNs stripped on 6 parity groups (450xRAID7+1), total 48 disks
* 2x 4Gbps FC with MPxIO

Which is the best Oracle SGA size to avoid cache duplication between Oracle and ZFS?

Is it better to have a "small SGA + big ZFS ARC" or "large SGA + small ZFS ARC"?

Who does a better cache for overall performance?

In general, it is better to cache closer to the consumer (application).

You don't mention what version of Solaris or ZFS you are using.
For later versions, the primarycache property allows you to control the
ARC usage on a per-dataset basis.
 -- richard

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
Hi
addign oracle-interest
I would suggest some testing but standard recommendation to start with
are keep zfs record size is db block size, keep oracle log writer to it's own pool ( 128k recordsize is recommended I believe for this one ), the log writer is a io limiting factor as such , use latest Ku's for solaris as they contain some critical fixes for zfs/oracle, ie 6775697 for instance. Small SGA is not usually recommended, but of course a lot depends on application layer as well, I can only say test with the recommendations above and then deviate from there, perhaps keeping zil on separate high latency device might help ( again only analysis can determine all that ). Then remember that even after that with a large SGA etc, sometimes perf can degrade, ie might need to instruct oracle to actually cache, via alter table cache command etc.

getting familiar with statspack aws will be a must here :-) as only an analysis of Oracle from an oracle point of view can really tell what is workign as such.

Enda


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

Reply via email to