Innodb IO優化 配置優化

2022-04-05 07:21:16 字數 1827 閱讀 3944

對於資料庫來講大多瓶頸都出現在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:這個引數據控制innodbcheckpoint時的io能力,一般可以按一塊sas15000轉的磁碟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,mysql5.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

另外5.6的undolog也可以獨立配置了,建議單獨配置出來。

Innodb IO優化與配置方案

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

mysql配置優化 MySQL配置效能優化

下面配置的優化,可能影響比較大,可能可以顯著提高讀寫效能。1 mysql一些主要配置項介紹 innodb buffer pool size 這是你安裝完innodb後第乙個應該設定的選項。緩衝池是資料和索引快取的地方 這個值越大越好,這能保證你在大多數的讀取操作時使用的是記憶體而不是硬碟。如果是純資...

mysql server 配置優化

mysql伺服器的後台管理程式,要想使用客戶端程式,該程式必須執行,因為客戶端通過連線伺服器來訪問資料庫。下面讓我們以伺服器的系統變數和狀態變數為根據,優化我們的mysql資料庫服務。在這之前,我們需要掌握以下方法 檢視mysql狀態及變數的方法 mysql show status 顯示狀態資訊 擴...