Опция 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 добавляем следующую директиву:

thread_cache_size = 64

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

/etc/init.d/mysql restart

 

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

mysql -u root -p

 

SET GLOBAL thread_cache_size = 64

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

SHOW GLOBAL STATUS LIKE 'Threads_created';

 

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