Innodb IO優化與配置方案

2021-06-23 04:29:44 字數 2135 閱讀 2560

對於資料庫來講大多瓶頸都出現在io問題上,所以現在ssd類的裝置也才能大行其道。那資料庫的io這塊有什麼可以優化的嗎? 我這裡大致談一下我的看法,希望能達到乙個拋磚引玉的效果。

這裡談一下資料庫本身的配置方面。

配置方面對於io優化的原則:盡可能能快取,減少讀對資料庫的隨機io的請求;同時減少寫的隨機io的隨時發生,利用各種buffer去快取。下面來看一下這塊的引數:

innodb_buffer_pool_size: 這是innodb最重要的乙個配置引數,這個引數控制innodb本身的緩大小,也影響到,多少資料能在快取中。建議該引數的配置在物理記憶體的70%-80%之間。

innodb_flush_method:這個控制innodb的io形為,什麼:fsync, o_dsync之類的,這裡不做過多介紹, 建議使用: o_direct, 這樣減少作業系統級別vfs的快取使用記憶體過多和innodb本身的buffer的快取衝突,同時也算是給作業系統減少點壓力。

innodb_io_capacity:這個引數據控制innodb checkpoint時的io能力,一般可以按一塊sas 15000轉的磁碟200個計算,6塊盤的sas做的raid10這個值可以配到600即可。如果是普通的sata一塊盤只能按100算。(innodb-plugin, percona有這個引數)

innodb_max_dirty_pages_pct:這個引數據控制髒頁的比例如果是innodb_plugin或是mysql5.5以上的版本,建議這個引數可以設制到75%-90%都行。如果是大量寫入,而且寫入的資料不是太活躍,可以考慮把這個值設的低一點。 如果寫入或是更新的資料也就是熱資料就可以考慮把這個值設為:95%

innodb_log_file_size: 這個可以配置256m以上,建議有兩個以前的日誌檔案(innodb_log_files_in_group). 如果對系統非常大寫的情況下,也可以考慮用這個引數提高一下效能,把檔案設的大一點,減少checkpiont的發生。 最大可以設製成:innodb_log_files_in_group * innodb_log_file_size < 512g(percona, mysql 5.6) 建議設製成:  256m -> innodb_buffer_pool_size/innodb_log_file_in_group 即可。

innodb_log_buffer_size:如果沒在大事務,控制在8m-16m即可。

其它對io有影響的引數(以5.6為準)

innodb_adaptive_flushing: 預設即可

innodb_change_buffer_max_size: 如果是日值類服務,可以考慮把這個增值調到 50

innodb_change_buffering: 預設即可

innodb_flush_neighors: 預設是開的, 這個一定要開著,充分利用順序io去寫資料。

innodb_lru_scan_depth: 預設即可 這個引數比較專業。

innodb_max_purge_lag:預設沒啟用,如果寫入和讀取都量大,可以保證讀取優先,可以考慮使用這個功能。

innodb_random_read_ahead:預設沒開啟,屬於乙個比較活躍的引數,如果要用一定要多測試一下。 對用passport類應用可以考慮使用

innodb_read_ahead_threshold:預設開啟:56 預讀機制可以根據業務處理,如果是passprot可以考慮關閉。如果使用innodb_random_read_ahead,建議關閉這個功能

innodb_read_io_threads: 預設為:4 可以考慮8

innodb_write_io_threads: 預設為:4 可以考慮8

sync_binlog:預設即可: 0

innodb_rollback_segments: 預設即可: 128

Innodb IO優化 配置優化

對於資料庫來講大多瓶頸都出現在io問題上,所以現在ssd類的裝置也才能大行其道。那資料庫的io這塊有什麼可以優化的嗎?我這裡大致談一下我的看法,希望能達到乙個拋磚引玉的效果。這裡談一下資料庫本身的配置方面 具體如下 配置方面對於io優化的原則 盡可能能快取,減少讀對資料庫的隨機io的請求 同時減少寫...

Lua配置表儲存優化方案

近幾年移動端遊戲大熱,unity lua更是手遊行業的標配技術。如何有效利用有限的硬體條件,實現當前高品質 高規格的遊戲產品是持久不變的話題。lua作為乙個極為精簡的嵌入型指令碼語言,已經廣泛地用在了遊戲業,lua的存在一般是兩種場合,一種用於實現遊戲上層業務邏輯,一種則利用了lua語言本身靈活簡單...

Lua配置表儲存優化方案

簡單介紹 lua作為乙個極為精簡的嵌入型指令碼語言,已經廣泛地用在了遊戲業。lua的存在一般是兩種場合,一種用於實現遊戲上層業務邏輯,一種則利用了lua語言本身靈活簡單的資料表達能力而被廣大程式設計師用於資料的儲存,也就是常說的配置檔案。一般來說配置檔案的初始 是策劃維護著的 有著一定格式約束的ex...