MySQL 配置InnoDB主執行緒I/O速率

eric0435發表於2022-04-09

配置InnoDB主執行緒I/O速率
InnoDB中的主執行緒是在後臺執行各種任務的執行緒。這些任務大多數都與I/O相關,比如從緩衝池重新整理髒頁,或者將更改從插入緩衝區寫入適當的二級索引。主執行緒試圖以不影響伺服器正常工作的方式執行這些任務。它試圖估計可用的空閒I/O頻寬,並調整其活動以利用這些空閒容量。從歷史上看,InnoDB已經使用了硬編碼值 100 IOPs(每秒輸入/輸出運算元)作為伺服器的總I/O容量。

innodb_io_capacity表示InnoDB可用的總I/O容量。該引數應該設定為系統每秒可以執行的I/O運算元。該值取決於您的系統配置。當設定innodb_io_capacity時,主執行緒會根據設定的值來估算後臺任務可用的I/O頻寬。將該值設定為100將恢復到原來的行為。

innodb_io_capacity可以設定為100或更大的任意值。預設值是200,這反映了典型的現代I/O裝置的效能要高於早期的MySQL。通常,前面的預設值100左右的值適合消費者級儲存裝置,比如高達7200 rpm的硬碟驅動器。更快的硬碟驅動器、RAID配置和ssd受益於更高的值。

innodb_io_capacity設定是所有緩衝池例項的總限制。當髒頁被重新整理時,innodb_io_capacity限制將在緩衝池例項中平均分配。更多資訊請參見innodb_io_capacity系統變數描述。

您可以在MySQL選項檔案(my.cnf或my.ini)中設定該引數的值,或者使用set GLOBAL命令動態更改它,該命令需要超級許可權

innodb_flush_sync配置選項會導致innodb_io_capacity設定在檢查點發生I/O突發時被忽略。Innodb_flush_sync預設開啟。

以前,InnoDB主執行緒還執行任何需要的清除操作。在MySQL 5.6.5及以上版本中,這些I/O操作被轉移到其他後臺執行緒,其數量由innodb_purge_threads配置選項控制。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2886312/,如需轉載,請註明出處,否則將追究法律責任。

相關文章