深入淺出Mysql數(shù)據(jù)庫開發(fā)優(yōu)化與管理維護筆記22磁盤IO的問題和數(shù)據(jù)分布_第1頁
深入淺出Mysql數(shù)據(jù)庫開發(fā)優(yōu)化與管理維護筆記22磁盤IO的問題和數(shù)據(jù)分布_第2頁
深入淺出Mysql數(shù)據(jù)庫開發(fā)優(yōu)化與管理維護筆記22磁盤IO的問題和數(shù)據(jù)分布_第3頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、深入淺出 Mysql 數(shù)據(jù)庫開發(fā)優(yōu)化與管理維護筆記 22 磁盤IO 的問題和數(shù)據(jù)分布原文地址: 深入淺出 Mysql 數(shù)據(jù)庫開發(fā)優(yōu)化與管理維護 筆記22 磁盤 IO 的問題和數(shù)據(jù)分布作者: AndyBegin 作為應用系 統(tǒng)的持久化層 ,不管數(shù)據(jù)庫采取了什么樣的 cache 機制 ,數(shù)據(jù) 最終都是要存在磁盤上 .實際上我們對 sql 優(yōu)化 ,數(shù)據(jù)庫對象優(yōu)化 ,數(shù)據(jù)庫參數(shù)優(yōu)化以 及應用優(yōu)化等 ,大部分都是想通過減少或延緩磁盤讀寫來減 輕 I/O 的壓力 .磁盤陣列( RAID )RAID 是 Redundant Array of Inexpensive Disks的縮寫 ,通常叫做磁盤陣列 .R

2、AID 是按照一定策略將數(shù)據(jù)分布到若干物理 磁盤上 ,這樣不僅增強了數(shù)據(jù)存儲的可靠性 ,而且可以提高數(shù) 據(jù)的讀寫性能 .(因為分布實現(xiàn)了數(shù)據(jù)并行讀寫 )RAID 0: 也叫條帶化 ,連續(xù)以位或字節(jié)為單位分割數(shù)據(jù),并行 讀/寫于多個磁盤上, 因此具有很高的數(shù)據(jù)傳輸率, 但它沒有 數(shù)據(jù)冗余, 因此并不能算是真正的 RAID 結構。 RAID 0 只是 單純地提高性能,并沒有為數(shù)據(jù)的可靠性提供保證,而且其 中的一個磁盤失效將影響到所有數(shù)據(jù)。因此,RAID 0 不能應用于數(shù)據(jù)安全性要求高的場合 .缺點是數(shù)據(jù)無冗余 ,可靠性 差.RAID 1: 也叫磁盤鏡像 ,它是通過磁盤數(shù)據(jù)鏡像實現(xiàn)數(shù)據(jù)冗余, 在成對

3、的獨立磁盤上產(chǎn)生互 為備份的數(shù)據(jù)。當原始數(shù)據(jù)繁 忙時,可直接從鏡像拷貝中讀取數(shù)據(jù),因此 RAID 1 可以提 高讀取性能。 RAID 1 是磁盤陣列中單位成本最高的,但提 供了很高的數(shù)據(jù)安全性和可用性。當一個磁盤失效時,系統(tǒng) 可以自動切換到鏡像磁盤上讀寫 ,而不需要重組失效的數(shù)據(jù) . 缺點是容量一定需要 2 倍的磁盤 .RAID 10: 是 RAID1 和 RAID0 的結合 ,也叫 RAID10. 先對磁盤做鏡像 ,在條帶化 ,使其兼具 RAID1 的可靠性和 RAID0 的優(yōu)良并發(fā)讀寫性 .缺點是容量一定需要 2 倍的磁盤 .RAID 4:RAID 4 同 RAID0 一樣 ,也將數(shù)據(jù)條塊

4、化并分布于不 同的磁盤上,但條塊單位為塊或記錄。另外RAID 4 使用一塊磁盤作為奇偶校驗盤,每次寫操作都需要訪問奇偶盤,這 時奇偶校驗盤會成為寫操作的瓶頸,因此RAID 4 在商業(yè)環(huán)境中也很少使用。RAID 5:RAID 5 是 RAID 4 的改進 .不單獨指定的奇偶盤, 而是在所有磁盤上交叉地存取數(shù)據(jù)及奇偶校驗信息。在 RAID 5 上,讀 /寫指針可同時對陣列設備進行操作,提供了 更高的數(shù)據(jù)流量。 RAID 5 更適合于小數(shù)據(jù)塊和隨機讀寫的 數(shù)據(jù)。缺點是寫性能不如以上 ,在出現(xiàn)壞盤時 ,讀性能會下降選擇合適的 RAID 級別1. 如果數(shù)據(jù)讀寫都很頻繁 ,可靠性要求高 ,最好選擇 RAI

5、D 10.2. 如果數(shù)據(jù)讀寫頻繁 ,寫相對較少 ,對可靠性有一定要求 ,可以 選擇 RAID 53. 如果數(shù)據(jù)讀寫都很頻繁 ,但可靠性要求不高 ,可以選擇 RAID 0 .使用 Symbolic Links 分布 I/OMysql 的數(shù)據(jù)庫名和表名與文件系統(tǒng)的目錄名和文件名是相 對應的 ,默認情況下所有的數(shù)據(jù)庫和表都放在參數(shù)默認定義 的目錄下 .這樣如果不使用 RAID 或邏輯卷 ,所有的表都放在 一個磁盤設備上 ,無法發(fā)揮多磁盤并行讀寫的優(yōu)勢! 我們可以 使用操作系統(tǒng)的符號鏈接 (Symbolic links) 將不同的數(shù)據(jù)庫 或表或索引指向不同的物理磁盤 ,從而達到分布磁盤 I/O 的目

6、的.1. 將一個數(shù)據(jù)庫指向其他物理磁盤 ,先在目標磁盤上建立一 個目錄 , 然后在創(chuàng)建從 mysql 目錄到目標目錄的符號鏈接Shell> mkdir /otherdisk/databases/testShell> ln -s /otherdisk/databases/test /path/to/datadir2. 將 myisam( 其他存儲引擎的表不支持 )表的數(shù)據(jù)文件或索 引文件指向其他物理磁盤 .對于新建的表 ,可以通過在 create table 語句中增加 data directory 和 index directory 選項來完成 :如: create table t

7、est(id int primary key)type = myisam ,data directory = /disk2/data ,index directory = /disk3/index ;對于已有的表 ,可以先將其數(shù)據(jù)文件 (.MYD) 或索引文件 (.MYI) 轉(zhuǎn)移到目標磁盤 ,然后再建立符號鏈接即可 .注表定義文件 (.frm) 必須位于 Mysql 默認目錄下 .3. 在 Window 下使用符號鏈接是通過在 Mysql 數(shù)據(jù)文件目錄 下創(chuàng)建包含目標路徑并以 .sym 結尾的文本文件來實現(xiàn)的 .假 如 mysql 的數(shù)據(jù)文件目錄是 C:mysqldata , 需要把數(shù)據(jù)庫 f

8、oo 存放到 D:datafoo, 可以如下實現(xiàn) .首先創(chuàng)建目錄 D:datafoo, 然后創(chuàng)建文件 C:mysqldatafoo.sym, 在其中輸入 D:datafoo, 這樣在數(shù)據(jù) 庫 foo 創(chuàng)建的表都會存儲到 D:datafoo 目錄下 .提示 :使用 symbolic links 存在一定的安全風險 , 如果不使用 symbolic links, 應通過啟動參數(shù) skip-symbolic-links 禁用這 一功能 .禁止操作系統(tǒng)更新文件的 atime 屬性atime 是 linux 系統(tǒng)下的文件屬性 , 每當讀取文件時操作系統(tǒng) 都會更改 atime. 對于 atime 的使用基

9、本不會用到但是 atime 會影響 I/O 的性能 .所以我們可以關閉修改 atime 屬性以減輕 磁盤 I/O 的負擔 .1. 修改文件系統(tǒng)配置文件 /etc/fstab, 指定 noatime 選項 :LABEL=/home /homeext3 noatime122. 重新 mount 文件系統(tǒng) :#mount -oremount /home用裸設備 (Raw Device) 存放 InnoDB 的共享表空間Myisam 存儲引擎有自己的緩存機制 ,但數(shù)據(jù)文件的讀寫完全 依賴于操作系統(tǒng) , 操作系統(tǒng)磁盤 I/O 緩存對 Myisam 的存取很 重要 .但 InnoDB 與 Myisam 不同 ,它類似 Oracle 的數(shù)據(jù)緩存 機制來 Cache 索引和數(shù)據(jù) ,操作系統(tǒng)的磁盤 I/O 緩存對其性 能不僅沒有幫助 , 甚至還有反作用 . 因此在 InnoDB 緩存充足 的情況下 , 可以考慮使用 Raw Device 來存放 InnoDB 共享表 空間.1. 修改 Mysql 配置文件 ,在 innodb_data_file_path 參數(shù)增加裸 設備文件名并指定 newraw 屬性 :mysqldInnodb_data_home_dir =Innodb_data_file_path=/dev/hdd1:3Gnewraw;/dev/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論