Mysql
調整 InnoDB 相關 MySQL 配置後,磁碟 I/O 使用率高達 100%
我在“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。