Oracle Optimization Based on Solaris or Linux
I. High cluster wait time problems in RAC
- 1. Set the LMS process to FX 60. Do not adjust the number of lms processes too much.
Note: process priority can be set after Solaris 10 Update 10 and Solaris 11. You can view the/etc/release version. For example, Oracle Solaris 10 1/13 indicates Solaris 10 Update 11. For details, refer to: Oracle Solaris 10 Update version and its history.
Oracle Solaris 10 1/06 (Update 1) U1
Oracle Solaris 10 6/06 (Update 2) U2
Oracle Solaris 10 11/06 (Update 3) U3
Oracle Solaris 10 8/07 (Update 4) U4
Oracle Solaris 10 5/08 (Update 5) U5
Oracle Solaris 10 10/08 (Update 6) U6
Oracle Solaris 10 5/09 (Update 7) U7
Oracle Solaris 10 10/09 (Update 8) U8
Oracle Solaris 10 9/10 (Update 9) U9
Oracle Solaris 10 8/11 (Update 10) U10
Oracle Solaris 10 1/13 (Update 11) U11
In/etc/system
Set ip: ip_squeue_bind = 0
2. In large systems, startup is slow and sga loading is slow.
- 1. to accelerate the loading of sga memory, you can increase the mode of concurrent loading of memory: (Note: The default value is a maximum of 16 concurrency, and the following is changed to 32 concurrency), modify the parameters in/etc/system:
Set vmtask_ntasks_max = 0x20
- 2. or directly modify it online:
Echo "vmtask_ntasks_max/W 0x20" |/bin/mdb-kw
In the test environment, on the T3-4 machine, load the slave g SGA, if the default 16 concurrency, it takes 60 seconds, if you use 64 concurrency, it only takes about 20 seconds.
Iii. log file sync
Log file sync waits a lot, but log file parallel write does not have much waiting time.
You can use prstat-p <PID_OF_LGWR>-v to check the cpu usage of lgwr, such as the ratio of % sys, such as latency of LAT.
- 1. Reduce the number of processes for each semaphore:
# Projadd-U oracle-K "process. max-sem-nsems = (priv, 64, deny)" user. oracle
# Projmod-a-K "process. max-sem-nsems = (priv, 64, deny)" user. oracle
# Prctl-n process. max-sem-nsems-r-v 64-I process <PID>
- 2. Increase the lgwr process priority to FX 60
# Priocntl-c FX-m 60-p 60-s '/usr/bin/pgrep-f ora_lgwr'
- 3. Use the cpu exclusively for lgwr
# Create Processor Set
# Psrset-c 56-63
# Turn off all but one CPU in the processor set
# Psradm-f 57-63
# Bind the lgwr to the processor set
# Psrset-B 1 'pgrep-f ora_lgwr'
# Mark the CPU as non-interruptible
# Psrset-f 56
4. db file sequential/parallel read too high.
- 1. Use processor sets to exclusively occupy the CPU.
- 2. Confirm that IO is evenly distributed on each available controllers/channels/ports.
- 3. In the SAN Environment, consider using multi-path MPXIO
- 4. Use Database Smart Flash Cache:
-Db_flash_cache_file = <+ flashdg/FlashCacheFile>
-Db_flash_cache_size = <flashpoolsize>
Reference: CON1741_Mcintosh-Top 10 Database Performance Tips for iSCSI Systems Running Oracle Solaris.pptx