innodb_io_capacity — определяет количество IOPS на запись для фоновых задач InnoDB, например очистка страниц из пула буферов и т.д. Если операция очистки отстает, то InnoDB может более агрессивно выполнять очистку с более высокой скоростью IOPS, значение которой определено в переменной innodb_io_capacity_max.
Посмотрим текущее значение innodb_io_capacity (по умолчанию 200):
show variables like 'innodb_io_capacity';
Определить производительность дисковой системы можно например как я описывал в этих статьях:
Тест iops используя fio
DiskSpd. Меряем IOPS в Windows
Измерять необходимо обязательно одновременно выполняя случайную запись и случайное чтение, так как в этом случае производительность дисков намного меньше чем при раздельных тестах.
Можно указать например около 50% доступных IOPS или хотя бы немного увеличить значение, например:
SET global innodb_io_capacity=1000;
А также укажем в файле конфигурации, чтобы значение не сбросилось после перезапуска MySQL сервера:
[mysqld]
innodb_io_capacity=1000
Посмотрим текущее значение innodb_io_capacity_max (по умолчанию 2000):
show variables like 'innodb_io_capacity_max';
Приведу пример изменения:
SET global innodb_io_capacity_max=4000;
Также укажем в файле конфигурации:
[mysqld]
innodb_io_capacity_max=4000
Смотрите также другие мои статьи про MySQL