MySQL (Percona): несколько одновременных длительных соединений - PullRequest
0 голосов
/ 17 июня 2019

Я запускаю распределенное приложение в облаке, где клиенты открывают несколько длительных подключений к серверу MySQL (Percona).

После обновления до последней версии Percona максимальное количество одновременно подключенных клиентов значительно сократилось. В прошлом, с предыдущей версией Percona, она успешно использовалась с соединениями до 8 КБ, теперь она пытается подняться выше 3 КБ.

Под "борьбой" я подразумеваю, что, когда узкое место в соединении достигнуто, время соединения с MySQL истекает даже в командной строке. Когда мне удается подключиться, show processlist не показывает никаких зависающих запросов или блокировок. Таким образом, установленные соединения работают просто отлично. Веб-сервер Apache, обслуживающий веб-приложение PHP, используемое для мониторинга проекта, также зависает бесконечно.

Вот my.cnf, который я использую, соединенный вместе из различных руководств.

[mysqld]
open_files_limit               = 16384
table_open_cache               = 16384
character_set_server           = utf8mb4
max_connections                = 16384
expire_logs_days               = 10
max_binlog_size                = 100M
innodb_open_files              = 16384
innodb_file_per_table          = 1
innodb_read_io_threads         = 4
innodb_write_io_threads        = 4
innodb_thread_concurrency      = 0
innodb_log_file_size           = 128M
innodb_open_files              = 4000
innodb_flush_method            = O_DIRECT
innodb_buffer_pool_instances   = 1
thread_pool_size               = 16
local_infile                   = 1
skip-name-resolve
thread_cache_size              = 16384
thread_handling                = pool-of-threads
innodb_buffer_pool_size        = 512M
innodb_buffer_pool_instances   = 1
innodb_log_buffer_size         = 64M

И версия Percona, которую я использую:

mysqld --version
Ver 8.0.15-6 for debian-linux-gnu on x86_64 (Percona Server (GPL), Release '6', Revision '63abd08')

ОС: Ubuntu 18.04.2 LTS

Оборудование:

  • ЦП: Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz
  • RAM: 32G

Все запросы, которые я выполняю, основаны на уникальных индексах (без объединений), все таблицы - InnoDB. Та же конфигурация работала нормально до обновления до Percona 8.

Параметры my.cnf, которые мне пришлось удалить после обновления, поскольку они больше не поддерживаются:

  • innodb_locks_unsafe_for_binlog = 0
  • query_cache_size = 0
  • query_cache_type = 0

То, что я пробовал:

  • Я пробежал mysqltuner.pl, но не получил от него соответствующего совета.

  • ulimit -n и ulimit -s показывают значения, значительно превышающие значения, которые я использую (особенно 1048576 и 16384).

Любые другие предложения?

...