Как изменить innodb_thread_concurrency в MySQL

Приведу пример изменения innodb_thread_concurrency в MySQL.
Так как InnoDB использует потоки операционной системы для обработки пользовательских транзакций, то параметр innodb_thread_concurrency позволяет ограничить их. По умолчанию в новых версиях MySQL значение равно 0, это означает что нет ограничения на количество одновременно выполняемых потоков и это является правильным для современных серверов. Если же вы хотите ограничить, то при достижении лимита лишние потоки будут ожидать определенное количество микросекунд указанное в параметре innodb_thread_sleep_delay, а потом попытаются попасть в очередь. Также в MySQL 5.6.3 и выше добавлен параметр innodb_adaptive_max_sleep_delay который позволяет указать максимальное количество микросекунд для параметра innodb_thread_sleep_delay и тогда InnoDB автоматически регулирует innodb_thread_sleep_delay.

Приведу пример просмотра текущего значения:

show variables like 'innodb_thread_concurrency';

Если значение не равно 0, то рекомендую его установить:

set global innodb_thread_concurrency=0;

Изменения вступят в силу без перезапуска MySQL сервера.
Чтобы изменения не сбросились после перезапуска MySQL, то укажем их также в конфигурационном файле:

[mysqld]
innodb_thread_concurrency=0

Смотрите другие мои статьи про MySQL
Как изменить innodb_write_io_threads
Как изменить innodb_read_io_threads

Оставьте комментарий

Добавить комментарий

Больше на IT Blog

Оформите подписку, чтобы продолжить чтение и получить доступ к полному архиву.

Continue reading