28.06.2014 Views

Performance Tuning Siebel Software on the Sun Platform

Performance Tuning Siebel Software on the Sun Platform

Performance Tuning Siebel Software on the Sun Platform

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

7.6.4 Solaris MPSS <str<strong>on</strong>g>Tuning</str<strong>on</strong>g> for Oracle Server<br />

Available as a standard feature since Solaris 9 OS, Multiple Page Size Support (MPSS)<br />

allows a program to use any hardware-supported page sizes to access porti<strong>on</strong>s of virtual<br />

memory. MPSS improves virtual memory performance by allowing applicati<strong>on</strong>s to use<br />

large page sizes, <strong>the</strong>refore improving resource efficiency and reducing overhead, and<br />

accomplishes this without recompiling or recoding applicati<strong>on</strong>s.<br />

Enable MPSS (Multiple Page Size Support) for Oracle Server and shadow processes <strong>on</strong><br />

Solaris 9 OS or later versi<strong>on</strong>s to reduce <strong>the</strong> TLB miss% rate. It is recommended to use<br />

<strong>the</strong> largest available page size if <strong>the</strong> TLB miss% is high.<br />

Enabling MPSS for Oracle Processes<br />

1. Enable <strong>the</strong> kernel cage if <strong>the</strong> machine is not an E10K or F15K, and reboot <strong>the</strong><br />

system. Kernel cage an be enabled by <strong>the</strong> following setting in /etc/system:<br />

set kernel_cage_enable=1<br />

Why do we need <strong>the</strong> kernel cage? To address a problem with memory<br />

fragmentati<strong>on</strong>. Immediately after a system boot, a sizeable pool of large pages are<br />

available and <strong>the</strong> applicati<strong>on</strong>s can get all of <strong>the</strong>ir mmap() memory allocated from<br />

large pages. This can be verified using pmap -xs . If <strong>the</strong> machine has<br />

been in use for a while, <strong>the</strong> applicati<strong>on</strong> may not get <strong>the</strong> desirable large pages until<br />

<strong>the</strong> machine is rebooted. This is mainly due to <strong>the</strong> fragmentati<strong>on</strong> of physical<br />

memory.<br />

We can vastly minimize <strong>the</strong> fragmentati<strong>on</strong> by enabling <strong>the</strong> kernel cage. With <strong>the</strong><br />

kernel cage enabled, <strong>the</strong> kernel will be allocated from a small c<strong>on</strong>tiguous range of<br />

memory, minimizing <strong>the</strong> fragmentati<strong>on</strong> of o<strong>the</strong>r pages within <strong>the</strong> system.<br />

2. Find out all possible hardware address translati<strong>on</strong> (HAT) sizes supported by <strong>the</strong><br />

system with pagesize -a.<br />

$ pagesize -a<br />

8192<br />

65536<br />

524288<br />

4194304<br />

3. Run trapstat -T. The value shown in <strong>the</strong> ttl row and %time column is <strong>the</strong><br />

percentage of time <strong>the</strong> processor(s) spent in virtual-to-physical memory address<br />

translati<strong>on</strong>s. Depending <strong>on</strong> %time, make a wise choice of a pagesize that will help<br />

reduce reducing <strong>the</strong> iTLB/dTLB miss rate.<br />

4. Create a simple c<strong>on</strong>fig file for MPSS as follows:<br />

oracle*::<br />

Desirable heap and stack size must be <strong>on</strong>e of <strong>the</strong> supported HAT sizes. By<br />

default, 8Kbytes is <strong>the</strong> page size for heap and stack <strong>on</strong> all Solaris releases.<br />

<str<strong>on</strong>g>Performance</str<strong>on</strong>g> <str<strong>on</strong>g>Tuning</str<strong>on</strong>g> <str<strong>on</strong>g>Siebel</str<strong>on</strong>g> <str<strong>on</strong>g>Software</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>Sun</strong> <strong>Platform</strong> Page 45

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!