• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • PROGRESS數據庫性能調整攻略

    發表于:2007-05-25來源:作者:點擊數: 標簽:數據庫性能Progress攻略調整
    本攻略一概不說明為什么,只讓你怎么做! 1、優化應用程序,創建合理的索引 這個應該不算“數據庫”方面的 性能 調整,確切說應該屬于“算法的優化”,可參考算法優化方面的文章! 2、數據Extent分開存放,就是所謂的異步IO 包括硬件層次的陣列,操作系統層
    本攻略一概不說明為什么,只讓你怎么做!

    1、優化應用程序,創建合理的索引

    這個應該不算“數據庫”方面的性能調整,確切說應該屬于“算法的優化”,可參考算法優化方面的文章!

    2、數據Extent分開存放,就是所謂的異步IO
    包括硬件層次的陣列,操作系統層次的Raid0,或者數據庫Extent存放在不同的物理硬盤,都算!
    實際上使用時可能出現的情況很多,需要具體問題具體分析。

    //以上2點,當我沒說;另外,以下說明均基于操作系統環境:HP-UX11i

    3、設置數據庫的Block Size為8KB

    ①Block size 必須是2的整數倍,一般是1024 / 2048 / 4096 / 8192中選一個,原則是OS File System Block Size的1-2倍。查看FS的Block Size可以用:
    # fstyp -v /dev/vg01/mfg
    # df -g
    注意:for vxfs filesystems the 'f_bsize' parameter shows the maximum block size, while the 'f_frsize' parameter shows the actual block size. ///懶得翻譯了,別告訴我這句英語你看不懂。

    ②通常HP-UX環境下文件系統(FS)默認block size具有如下的對應關系:
    FS size <= 8GB --->1024 Kb
    FS size > 8 & <= 16 --->2048 Kb
    FS size > 16 & <= 32 --->4096 Kb
    FS size > 32 GB --->8192 Kb
    可以通過newfs命令加-b參數來指定文件系統的block size,比如:
    # newfs -F vxfs -b 2048 /dev/VG_NAME/rLV_NAME

    ③數據庫的Block Size只能在創建數據庫時指定,例:
    # /mfg/dlc91/bin/prostrct create prod prod.st -blocksize 8192

    ·關于怎么查看Block Size(可以在線運行):
    # /mfg/dlc91/bin/promon prod
    選擇7,可以看到Database Block Size,BI Cluster Size和BI Block Size等。

    4、設置BI Cluster Size為16M
    增大BI Cluster Size時,一個要考慮的是你的硬盤空間是否足夠(通常不是問題就是了)!
    關閉數據庫,執行:
    # /mfg/dlc91/bin/proutil prod -C truncate bi -bi 16384
    其中,16384就是BI Cluster Size,單位是K!必須是16 * (2的N次方):16 - 262128,就是16K到256M,通常設置512-16384,默認是512。

    5、設置BI Block Size為8K
    跟DB的BlockSize是一樣的道理,如何設置?關閉數據庫服務,輸入如下命令:
    # /mfg/dlc91/bin/proutil prod -C truncate bi -biblocksize size
    其中 size 可以是0 , 1 , 2 , 4 , 8,單位是KB.

    6、設置 AI Block Size = BI Block Size

    7、Set -bibufs to 25
    -bibufs也是一個數據庫啟動參數,設置BI的Buffer Cache,適當加大有助于提高BI的IO性能,但是要占用內存,占用內存數=bibufs * BI Block Size
    所以適當增加即可,建議25,如果內存夠大,那么根據如下原則增大:
    查看數據庫的BI Log Activity,如果Empty Buffer waits不為0,就加大該值。

    8、Run BIW if use.
    ///說實在,沒啥必要,數據庫性能如果很差,分析原因再怎么輪也輪不到這個,同理AIW!

    9、Run AIW if use.
    ///同BIW

    10、Run at least one APW.
    # /mfg/dlc91/bin/proapw prod
    注意每開啟一個APW占用一個-n的users資源,但是APW不計License,所以可以根據APW數,增加-n啟動參數的值。

    11、多處理器時注意合理設置 -spin參數
    官方建議值是CPU個數 * 2000 或者 4000 或者 6000,各種說法都有,個人建議:
    從0開始,每次加1000這樣調試,直到獲取最好性能。我覺得這個值肯定沒有一個固定的范圍,有時可能很大比如200萬。
    這個參數在數據庫啟動里面設,跟-B -L什么的類似,也可以在線修改:
    promon數據庫然后輸入R&D,選擇4修改參數,再選擇4!

    12、BI 和 DB分開存放

    說明:理論上可以,但經實際測試分析,這點小伎倆對DB性能提升幾乎發揮不了什么作用 :p

    13、AI extents的處理
    //同12點

    14、盡量避免使用Raid5模式

    說明:建議使用類似Raid0+1的模式,不用Raid5!

    15、別同時運行其它重量級的服務

    說明:從經濟角度出發,很能會讓一臺服務器運行多種服務,比如郵件、WEB等,但是建議不要,僅僅是建議!

    16、偽交換區的影響

    說明:swapmem_on=1時,開啟偽交換區,但是在某些情況下會對應用程序性能造成很大的下降!
    在HP-UX環境下查看是否開啟偽交換可以用這個命令:
    # sysdef|grep "mem_on"
    解決辦法:設置swapmem_on=0(注意OS需要重啟)
    注意:不要隨意更改swapmen_on=0,對于大內存而交換區相對設置比較小的狀況下,需要聯系root或者咨詢HP-UX方面的專家,以確定是否可以修改!

    ·如果不懂得如何修改HP-UX的內核參數,建議參加HP-UX的基礎研修,否則你作為DB的管理員將讓人很不放心!

    17、增大數據庫的Buffer Cache

    數據庫的-B啟動參數,指定了數據庫的Buffer Cache的大小,最大是500000,占用內存數計算方法:
    Buffer Cache = n * DB Block Size,所以當DB Block Size是8K時,Buffer Cache最大可以設置到4GB。
    原則上Buffer Cache越大越好(跟文件系統的Buffer Cache不一樣),但是需要考慮可用物理內存的限定!
    關于如何增加可用物理內存(不買硬件),通常會讓很多管理員忽視的一個,就是文件系統開的Buffer Cache過大, 不但沒用而且浪費物理內存。你可以先看看:
    # sysdef |grep "dbc_max_pct"
    這個內核參數指定了文件系統Buffer Cache的最大值,就是物理內存 * ( dbc_max_pct / 100),HP-UX11i以上默認dbc_max_pct是50,也就是物理內存一半......實際上,文件系統Buffer Cache不是越大越好,經驗值是300-500M之間,再大了反而降低性能。所以,你一定要調整這個值,使得文件系統的Buffer在300-500M之間!這樣做以后,你的可用物理內存通常能增加30%-40%?。?!

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>