您好,登錄后才能下訂單哦!
如何淺析MySQL數據庫磁盤I/O調整優化,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
目前web的應用大多都以I/O密集型為主,而存儲技術的發展遠沒有計算機中其他系統發展迅速,盡管也有不少高端存儲設備,但是價格的昂貴,不是一 般大眾能享受的起的。而基于現狀更多是我們使用一般SAS盤結合應用使用不同的RAID組合,來實現我們平民化存儲,為了得到更好的性能,那么和I/O相 關的調整優化是必不可少的。 對于我們數據庫調優來說,磁盤I/O優化是首屈一指的調優重點,我們都知道木桶原理,短板絕對整體的好壞, 而數據庫系統中這個短板正是由于我們使用的硬件設備里最弱的磁盤所導致。很多時候,我們會發現系統中I/O累得要死,而CPU卻在那里空閑等待,主要是由 于I/O執行響應時間太長,處理讀寫的速度遠遠趕落后于CPU的處理速度,這時我們會盡可能的讓操作放到內存中進行,由磁盤與CPU的關系,轉變成內存與 CPU的關系。但是,我們始終不能回避磁盤I/O的弱點,優化是必須的。
對于數據庫在日常應用中的特點,我們可以有很多想法。
1. 隨機讀寫的負載可以通過增加硬盤的個數實現擴展。
2. 對于順序讀寫帶來的壓力,可以通過選擇帶寬相對高一些的磁盤來解決。
3. RAID 5和RAID 10都是不錯的原則對于數據庫應用來說。
4. 當然,基于自身業務的關鍵程度與成本雙重考慮,Fusion-io卡(讀與寫的性能俱佳)和SSD(優秀的隨機讀),都未嘗不是一個理想的選擇。
5. 在操作系統中,I/O Scheduler的調度模式選擇deadline對于數據庫應用是有利的。命令:echo deadline > /sys/block//queue/scheduler
6. 操作系統中nr_requests參數,可以提高系統的吞吐量,似乎越大越好,但是該請求隊列的也不能過大,因為這樣會消耗大量的內存空間。該值的調整需 要綜合多處因素,比如: 文件系統、sheduler類型、io的特點。命令: echo xxx > /sys/block//queue/nr_requests,nr_requests的大小設置至少是/sys/block//device /queue_depth的兩倍,所以,修改nr_requtests的時候要注意。
7. 系統目錄/sys/block//queue下還有一個預讀的參數read_ahead_kb,這個參數增大只會對順序讀的操作有提升,而數據庫這類應用中多數是隨機讀;通過命令hdparm -t /dev/sda{,,}可以測試修改后預讀的效果。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。