Spec-Zone .ru
спецификации, руководства, описания, API
|
Сервер MySQL создает следующие потоки:
Потоки менеджера соединений обрабатывают клиентские запросы соединения на сетевых интерфейсах, которые слушает сервер. На всех платформах один поток менеджера обрабатывает запросы соединения TCP/IP. На Unix этот поток менеджера также обрабатывает запросы соединения файла сокета Unix. На Windows поток менеджера обрабатывает запросы сопряжения с общей памятью, и другое соединение именованного канала дескрипторов запросы. Сервер не создает потоки, чтобы обработать интерфейсы, которые он не слушает. Например, Windows server, у которого нет поддержки соединений именованного канала включенной, не создает поток, чтобы обработать их.
Потоки менеджера соединений связывают каждое клиентское соединение с потоком, выделенным этому, которое обрабатывает аутентификацию и обработку запросов для того соединения. Потоки менеджера создают новый поток когда необходимо, но пытаются избежать делать так, консультируясь с кэшем потока сначала, чтобы видеть, содержит ли он поток, который может использоваться для соединения. Когда соединение заканчивается, его поток возвращается к кэшу потока, если кэш не полон.
Для получения информации о настройке параметров, которые управляют ресурсами потока, см. Раздел 8.11.5.1, "Как MySQL Uses Threads for Client Connections".
На главном сервере репликации соединения от ведомых серверов обрабатываются как клиентские соединения: есть один поток на соединенное ведомое устройство.
На ведомом сервере репликации поток ввода-вывода запускается, чтобы соединиться с главным сервером и считать обновления из этого. Поток SQL запускается, чтобы применить обновления, считанные от ведущего устройства. Эти два потока работают независимо и могут быть запущены и остановлены независимо.
Поток сигнала обрабатывает все сигналы. Этот поток также обычно обрабатывает
аварийные сигналы и вызовы process_alarm()
вызвать тайм-ауты на
соединениях, которые были неактивны слишком долго.
Если InnoDB
используется, будет дополнительное чтение
и запишет потоки по умолчанию. Числом их управляют innodb_read_io_threads
и innodb_write_io_threads
параметры. См. Раздел
14.2.6,"InnoDB
Опции запуска и Системные Переменные".
Если mysqld
компилируется с -DUSE_ALARM_THREAD
, создается выделенный поток, который
обрабатывает аварийные сигналы. Это только используется на некоторых системах, где есть проблемы с sigwait()
или если Вы хотите использовать thr_alarm()
кодируйте в своем приложении без выделенного потока обработки сигнала.
Если сервер запускается с --flush_time=
опция,
выделенный поток создается, чтобы сбросить все таблицы каждый val
val
секунды.
Если планировщик события является активным, есть один поток для планировщика, и поток для каждого в настоящий момент рабочего события. См. Раздел 18.4.1, "Краткий обзор Планировщика События".
mysqladmin processlist только показывает соединение, репликацию, и потоки события.