Назад | Перейти на главную страницу

Использование дискового ввода-вывода до 100% после настройки конфигурации MySQL, связанной с InnoDB

Я добавил в my.conf следующие строки:

query_cache_size=128M
innodb_buffer_pool_size=512M
innodb_flush_method=O_DIRECT

После этого загрузка диска начала расти, достигла 100% и остается стабильной, а также загрузка процессора немного из-за задач, связанных с дисковым вводом-выводом, но физическая память используется только на 50%.

Я немного растерялся, что здесь происходит?

Как показывает практика, innodb_log_file_size предполагается 25% от innodb_buffer_pool_size. В вашем случае вы должны добавить эту переменную следующим образом:

[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_buffer_pool_size в зависимости от количества данных InnoDB, которые у вас есть в настоящее время. Запустите этот запрос:

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% установленной ОЗУ, затем используйте 75% установленной ОЗУ в качестве рекомендуемого значения. Как упоминалось ранее, установите соответственно innodb_log_file_size.

Согласно innodb_flush_method документация использование O_DIRECT может иметь как положительное, так и отрицательное влияние на вашу производительность

Цитата из документации:

В зависимости от конфигурации оборудования установка innodb_flush_method на O_DIRECT может иметь как положительное, так и отрицательное влияние на производительность. Выполните сравнительный анализ вашей конкретной конфигурации, чтобы решить, какой параметр использовать.