主機總線適配器(HBA)
即使價值2,000美元的HBA也會對大型數據庫的性能造成重大影響。對HBA要考慮兩個地方:
1.未處理的I/O請求量
2.可以實現的最大請求量
大多數HBA在驅動器軟件中將未處理的請求量默認值設置為16,這就限制了發送給RAID設備的命令數,即使擁有很多的磁盤驅動器和隨機I/O,這個數值也可能無法充分利用存儲資源。
許多操作系統和設備驅動器都限制了I/O請求的大小,使之小于從表空間讀或向表空間寫所需的請求量。應該將設備驅動器內所設的限制更改為允許更大的請求量。當然,對每個設備驅動器和操作系
統要做不同的設置,而且有意思的是,這些設置常常改變。
存儲硬件
存儲硬件很可能是為數據庫構建系統時最重要的部分之一。你也許希望擁有許多不同的LUN,以便用于數據庫中將發生的各種類型的I/O。舉例來說,一般情況下你希望:
重做日志文件擁有高帶寬需求(64 KB),發送到重做日志的I/O大部分是寫
索引查找擁有高帶寬小塊隨機I/O(8 KB),并且多數情況下對索引的I/O大部分是讀
表空間擁有大塊I/O(256 KB),并且一般情況下對表空間的I/O大部分是讀
正如你所看到的,一種大小是無法滿足所有需求的,因此你必須完成以下幾組匹配工作:
1.RAID級別與典型的讀/寫訪問類型
2.數據條寬度與請求大小
3.帶寬需求與RAID級別和請求大小
4.緩存策略與所處理的I/O類型
這些似乎都不太容易,不過如果你從最基本的問題著手,解決起來也不難。
重做日志
根據重做日志的大小和帶寬量,你可能最初會認為需要RAID-5數據條。這其實要看情況而定,因為大多數10K RPM磁盤的數據傳送速度為外磁道柱面每秒69 MB,內磁道柱面每秒39 MB,15K RPM的磁
盤則更快。另外再加上RAID緩存的大小,你就無須使用RAID-5了。真正的決定因素在于:
1.帶寬需求――每秒多少MB的日志數據
2.日志的大小――能夠適應緩存嗎?
3.你的RAID速度
你必須收集到上述三項重要信息,用各種不同的數據庫和系統工具查看系統,確定重做日志的表現是否會限制數據庫的性能和擴展,而如果是,那么重做日志的I/O需求又是什么。
索引文件
索引文件的結構相當簡單。如果你需要速度快一些,就使用數據條帶化值很小的RAID-1加上一塊高性能15K磁盤。因為索引文件是小塊讀文件,并且常常是隨機I/O,所以這是目前最快的方式。
表空間
根據表的大小及其被訪問和查找的方式,RAID-1有時是更好的方法,不過其它時候RAID-5就是最佳選擇了。關鍵是決定表空間的I/O請求大小是多少,請求的大小常常取決于數據庫中的可調參數。
結論
關于不同操作系統上的各種可調數據庫有許多書籍和文獻供參考,下面是我讀過覺得有用的幾本:
《在Solaris平臺上配置和調節數據庫(Configuring and Tuning Databases on the Solaris Platform)》,作者:Allan N. Packer,Sun微系統公司出版社,出版商:Prentice Hall(2001年12
月5日),ISBN:0130834173。
《Oacle9i性能調節方法和技巧(erformance Tuning Tips & Techniques)》,作者:Richard J. Niemiec,出版商:McGraw-Hill Osborne Media(2003年5月12日),ISBN:0072224738。
《創建一個自調節Oracle數據庫:自動化Oracle9i動態SGA性能[Oracle焦點系列](Creating a Self-Tuning Oracle Database: Automating Oracle9i Dynamic SGA Performance [Oracle In-
Focus series])》,作者:Donald K. Burleson,出版商:Rampant TechPress(2003年8月1日),ISBN:0972751327。
數據庫的構建正如其它應用一樣,你需要確定數據庫對文件系統/卷管理器、HBA和RAID的I/O模式,同時牢記性能需求和成本問題。由于數據庫很復雜,調節起來有些難度,不過現在有很多工具供
你查看數據,幫助你理解潛在的I/O問題。