Опция thread_cache_size в MySQL


Опция thread_cache_size указывает MySQL как много потоков создать при старте и не удалять в дальнейшем, опция позволяет улучшить быстродейстивие.


Процессы MySQL выполняются в потоках (thread) — поток создается каждый раз когда клиентом выполняется запрос к базе, такое поведение является стандартным и не доставляет никаких неудобств при сравнительно небольших нагрузках.



Однако, как только обращений клиентов становится очень много появляются проблемы с быстродействием и появляется нагрузка на сервер, создаваемая MySQL. Причиной является создание и удаление большого количества потоков.


Опция thread_cache_size в MySQL


Данное поведение можно оптимизировать подобрав значение параметра thread_cache_size для MySQL. Как и любые другие опции параметр задается в конфигурационном файле /etc/mysql/my.cnf

Если указать, что значение должно быть равно 64 — MySQL при старте создаст 64 потока и ему не потребуется создавать их при поступающих запросах, а также удалять.



Установка значения глобальной переменной thread_cache_size


В /etc/mysql/my.cnf (или один из файлов подключаемых в нём) в блок [mysqld ]добавляем следующую директиву:

thread_cache_size = 64



Затем перезапускаем сервер баз данных

systemctl restart mysql



Также значение может быть задано непосредственно в консоли сервера баз данных как глобальная переменная:

mysql -u root -p

Далее сервер запросит пароль root MySQL, вводим его. Затем выполняем:

SET GLOBAL thread_cache_size = 64



Это значение будет действовать до перезапуска сервера баз данных или перезагрузки сервера.


Посмотреть установленное (или существующее значение переменной) можно выполнив:

SHOW GLOBAL STATUS LIKE 'Threads_created';



На полученный результат и стоит ориентироваться при выборе необходимого значения рассмотренного параметра.

Читайте про оптимизацию настроек MySQL

Сказать спасибо