Изменение параметра innodb_io_capacity_max в MYSQL8 для экземпляра Azure с низким IOPS
Я использую Mysql 8 на ubuntu 18, значение innodb_io_capacity_max по умолчанию - 2000 . Если я уменьшу его до 500 . Будет ли проблема, если я загружу какой-нибудь файл большого размера 5 ГБ. Рассмотрим мою установку 2 CPU vcore, 8GB RAM экземпляр Azure ( Ubuntu 18) . . Я считаю, что он не должен терпеть неудачу, скорее из-за изменения значения innodb_io_capacity_max, чем медленная загрузка была принята
1 ответ
Во-первых, давайте посмотрим, что такое innodb_io_capacity_max
в офисном документе:
Если операция очистки отстает, InnoDB может выполнять очистку более агрессивно, с более высокой скоростью операций ввода-вывода в секунду (IOPS), чем определено в
innodb_io_capacity
переменная. Вinnodb_io_capacity_max
переменная определяет максимальное количество операций ввода-вывода в секунду, выполняемых фоновыми задачами InnoDB в таких ситуациях.Если вы укажете
innodb_io_capacity
настройки при запуске, но не указывайте значение дляinnodb_io_capacity_max
, innodb_io_capacity_max по умолчанию в два раза больше значенияinnodb_io_capacity
, с минимальным значением 2000.
Следовательно, innodb_io_capacity_max
- максимальное количество операций ввода-вывода в секунду, выполняемых фоновыми задачами InnoDB, когда операция очистки отстает
Когда вы уменьшили его до 500, это означает, что максимальное количество операций ввода-вывода в секунду при отстающей активности сброса изменено на 500.
Это может замедлить загрузку. Однако производительность загрузки большого файла зависит не только от количества операций ввода-вывода в секунду при сбросе на диск. Были бы другие ключевые моменты:
- Производительность оборудования: как насчет операций ввода-вывода в секунду на диске вашего экземпляра Azure.
- Изменить размер буфера: Преимущество для вторичного индекса
- Размер файла журнала повторного выполнения и количество файлов: если размер файла журнала повторного выполнения или количество файлов слишком мал, mysql должен прекратить загрузку новых данных вставки, пока на диск не будет сброшено достаточно грязных страниц.
- innodb_max_dirty_pages_pct значение: если это значение слишком низкое, скорость промывки будет автоматически увеличиваться,
- количество одновременных потоков загрузки: слишком высокая нагрузка вызовет
page_cleaner
предупреждение.....
Для вопроса, will it be any issue if I load some big size file 5GB
, Думаю были бы какие-то предупреждения о производительности загрузки и сбоев быть не должно.
Пытаясь ответить на ваш вопрос, я нашел еще 2 вопроса, которые могут быть вам полезны. Ссылки ниже. Этот джентльмен,@Bill Karwin
дать очень полезные объяснения в ответах на оба вопроса.