top
Loading...
7.6.磁盤事宜
7.6. 磁盤事宜
7.6.1. 使用符號鏈接

·         磁盤搜索是巨大的性能瓶頸。當數據量變得非常大以致于緩存性能變得不可能有效時,該問題變得更加明顯。對于大數據庫,其中你或多或少地隨機訪問數據,你可以確信對讀取操作需要至少一次硬盤搜索,寫操作需要多次硬盤搜索。要想使該問題最小化,應使用搜索次數較少的磁盤。

·         通過鏈接文件到不同的磁盤或對硬盤分段來增加可用磁盤錠數量(因此降低搜索成本):

o        使用符號鏈接

這說明,對于MyISAM表,你符號鏈接索引文件和/或數據文件,從它們數據目錄內的通常位置到另一個硬盤(也可以被條紋化)。這將使搜索和讀次數達到最好,假定硬盤不再為其它目的使用。參見7.6.1節,“使用符號鏈接”。

o        分條

分條意味著你有許多磁盤,將第1個塊放到第1個硬盤,第2個塊放到第2個磁盤,并且第N塊在(N mod number_of_disks)磁盤上等等。這意味著如果正常數據大小小于分條大小(或完全匹配),能夠得到最佳性能。分條完全取決于操作系統和分條大小,因此用不同的條紋大小對應用程序進行基準測試。參見7.1.5節,“使用自己的基準”。

分條的不同速度完全依賴于參數。依賴于怎樣設置條紋參數和硬盤數量,可以根據不同數量級別得到不同的標準。你必須進行選擇以便優化隨機或順序存取。

·         為了高可靠性你可能想使用RAID 0+1(條紋加鏡像),但在這種情況下,需要2*N塊磁盤來保持N個磁盤的數據。如果你肯為它花錢,這可能是最好的選項。然而,你可能還必須投資一部分資金到卷管理軟件中以便有效地管理它。

·         一個較好的選擇是根據數據類型的重要性程度改變RAID級別。例如,保存可以在RAID 0硬盤上重新生成的不太重要的數據,但保存 真正重要數據(例如主機信息和日志)到RAID 0+1RAID N硬盤。如果你有許多寫操作,RAID N可能會存在問題,因為需要時間來更新校驗位。

·         Linux上,通過配置磁盤接口時使用hdparm,你可以獲得更多的性能。(在一般負載下達到100%并不困難。)下面的hdparm選項 應該非常適用于MySQL,并且可能適用于許多其它應用程序:

     hdparm -m 16 -d 1

請注意,當使用該命令時,性能和可靠性依賴于硬件,因此我們強烈建議,使用hdparm完全測試你的系統。為獲取更多詳細信息,請查閱hdparm手冊幫助頁。如果hdparm使用的不好,會導致文件系統破壞,因此試驗之前請做好每個備份!

·         也可以設置數據庫使用的文件系統參數:

如果不需要知道文件最后一次訪問的時間(這對數據庫服務器并沒有實際的用途),可以用-o noatime選項安裝文件系統。這將跳過對文件系統中的節點的最后一次訪問時間的更新,從而能夠避免一些硬盤搜索。

在許多操作系統中,用-o async選項安裝,可以將文件系統設置為異步更新。如果電腦相當穩定,這應該給予你更高的性能而不需要犧牲太多的可靠性。(該標志是Linux中默認開啟。)

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/optimization.html
北斗有巢氏 有巢氏北斗