Mysql

調整 InnoDB 相關 MySQL 配置後,磁碟 I/O 使用率高達 100%

  • March 28, 2012

我在“my.conf”中添加了以下幾行:

query_cache_size=128M
innodb_buffer_pool_size=512M
innodb_flush_method=O_DIRECT

之後磁碟使用率開始上升,達到 100% 並保持穩定,由於磁碟 I/O 相關任務,CPU 也略有上升,但物理記憶體僅使用了 50%。

我有點迷路了這是怎麼回事?

根據經驗,innodb_log_file_size應該是innodb_buffer_pool_size的 25% 。在您的情況下,您應該按如下方式添加該變數:

[mysqld]
query_cache_size=128M
innodb_buffer_pool_size=512M
innodb_log_file_size=128M
innodb_flush_method=O_DIRECT

點擊這裡學習調整 innodb_log_file_size -> https://dba.stackexchange.com/a/1265/877

這是一種方法,您可以根據您目前擁有的 InnoDB 數據量設置正確的 innodb_buffer_pool_size 大小。執行此查詢:

SELECT CONCAT(ROUND(KBS/POWER(1024, 
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999), 
SUBSTR(' KMG',IF(PowerOf1024<0,0, 
IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size 
FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables 
WHERE engine='InnoDB') A, 
(SELECT 2 PowerOf1024) B; 

如果recommended_innodb_buffer_pool_size返回超過 75% 的已安裝 RAM,則使用 75% 的已安裝 RAM 作為推薦值。如前所述,相應地設置 innodb_log_file_size。

引用自:https://serverfault.com/questions/374249