一、RAC 中cluster wait time高问题
注:在Solaris 10 Update 10之后,以及Solaris 11,才可以设置进程的优先级。可以通过看/etc/release看其版本。如Oracle Solaris 10 1/13 是表示Solaris 10 Update 11,可参考:Oracle Solaris 10 Update版本及其历史
1 2 3 4 5 6 7 8 9 10 11 |
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 |
1 2 |
In /etc/system set ip:ip_squeue_bind = 0 |
二、在大型系统中,startup启动慢,加载sga慢。
1 |
set vmtask_ntasks_max = 0x20 |
1 |
echo “vmtask_ntasks_max /W 0x20” | /bin/mdb -kw |
在测试环境中,在T3-4的机器上,加载450G的SGA,如果默认16个并发,需要60秒,如果用64个并发,只需要20秒左右。
三、log file sync问题
log file sync等待较多,但是log file parallel write等待时间不多。
可以用prstat -p
1 2 3 |
# 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> |
1 |
# priocntl –c FX -m 60 -p 60 -s `/usr/bin/pgrep -f ora_lgwr` |
1 2 3 4 5 6 7 8 |
# #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 |
四、db file sequential/parallel read等待过高的问题。
1 2 |
- db_flash_cache_file = <+flashdg/FlashCacheFile> - db_flash_cache_size = <flash pool size> |
参考:CON1741_Mcintosh-Top 10 Database Performance Tips for SPARC Systems Running Oracle Solaris.pptx