Spec-Zone.ru › MariaDB

Пул потоков в MariaDB 5.1 - 5.3

В этой статье описывается старый пул потоков в MariaDB 5.1 - 5.3.

MariaDB 5.5 и более поздние версии используют улучшенный пул потоков - см. Пул потоков в MariaDB.

О пуле потоков

Это расширенная версия кода пула потоков из MySQL 6.0. Это позволяет использовать ограниченный набор потоков для обработки всех запросов вместо старого стиля «один поток на соединение». В последнее время его также называют «пул потоков», так как эта функция (в другой реализации) доступна в корпоративных изданиях MySQL (не в сообществе).

Это может быть очень выгодно, если большинство ваших запросов выполняются быстро, и в вашей системе мало блокировок таблиц/строк.

Инструкции

Для включения пула потоков вы должны сначала запустить конфигурацию с параметром --with-libevent. (Это автоматически выполняется, если вы используете любые скрипты «max» в каталоге BUILD):

./configure --with-libevent

При запуске mysqld с кодом пула потоков вы должны использовать

mysqld --thread-handling=pool-of-threads --thread-pool-size=20

Значения по умолчанию:

thread-handling=  one-thread-per-connection
thread-pool-size= 20

Одна проблема с пулом потоков заключается в том, что если все рабочие потоки выполняют работу (например, выполняют длительные запросы) или заблокированы блокировкой строки/таблицы, новые подключения не могут быть установлены, и вы не можете войти в систему и узнать, что не так, или войти в систему и убить запросы.

Чтобы помочь с этим, мы ввели два новых параметра для mysqld; extra_port и extra_max_connections:

--extra-port=#             (Default 0)
--extra-max-connections=#  (Default 1)

Если extra-port <> 0, то вы можете подключить максимальное количество обычных потоков + 1 дополнительный суперпользователь через TCP/IP-порт «extra-port». Эти соединения используют старый метод «один поток на соединение».

Для подключения через дополнительный порт используйте:

mysql --port='number-of-extra-port' --protocol=tcp

Это позволяет вам свободно использовать оптимальную модель соединения/потока на основе соединения.

См. также

  • Переменные управления потоками и размером пула потоков
  • Как MySQL использует потоки для клиентских подключений
Контент, воспроизведенный на этом сайте, является собственностью его соответствующих владельцев, и этот контент не предварительно проверяется MariaDB. Мнения, информация и мнения, выраженные в этом контенте, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/thread-pool-in-mariadb-51-53/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API