基于Solaris spark的Oracle调优

小荷 2014-09-28 20:07

一、RAC 中cluster wait time高问题

  • 1.设置LMS进程为FX 60,不要过多调整lms进程的数量
  • 注:在Solaris 10 Update 10之后,以及Solaris 11,才可以设置进程的优先级。可以通过看/etc/release看其版本。如Oracle Solaris 10 1/13 是表示Solaris 10 Update 11,可参考:Oracle Solaris 10 Update版本及其历史

    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
  • 2. UDP的参数:
  • In /etc/system
    set ip:ip_squeue_bind = 0



    二、在大型系统中,startup启动慢,加载sga慢。

  • 1.为了加速sga内存加载,可以加大并发加载内存的模式:(注:默认为最大16个并发,下面的改成了32个并发),修改/etc/system中的参数:
  • set vmtask_ntasks_max = 0x20
  • 2.或者直接在线修改:
  • 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-v 检查lgwr的cpu使用情况,如%sys的比例,如LAT的latency。

  • 1. 降低每个信号量的process数:
  • # 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.提高lgwr的进程优先级到FX 60
  • # priocntl –c FX -m 60 -p 60 -s `/usr/bin/pgrep -f ora_lgwr`
  • 3. 给lgwr以独占的方式使用cpu
  • # #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. 还是如上面的方式,使用processor sets来独占CPU。
  • 2.确认IO已经均匀分布在每个可用的controllers/channels/ports上
  • 3.在SAN环境中,考虑使用多路径MPXIO
  • 4.使用Database Smart Flash Cache:
  • - db_flash_cache_file =<+flashdg/FlashCacheFile>
    - db_flash_cache_size =<flashpoolsize>





    参考:CON1741_Mcintosh-Top 10 Database Performance Tips for SPARC Systems Running Oracle Solaris.pptx

    [返回] [原文链接]