MySQL(Percona):多个同时长期运行的连接

时间:2019-06-17 10:56:49

标签: mysql percona

我正在云中运行一个分布式应用程序,客户端在该应用程序中保持与MySQL(Percona)服务器的多个长期运行连接。

更新到最新的Percona版本后,同时连接的客户端的最大数量已大大减少。过去,在以前的Percona版本中,它已成功用于多达8K的连接,而现在它很难达到3K以上。

“奋斗”是指当达到连接瓶颈时,即使在命令行中,连接到MySQL也会超时。当我设法连接时,show processlist不会显示任何挂起的查询或锁。因此,建立的连接就可以了。用于监视项目的PHP Webapp服务器的Apache Web服务器也无限期挂起。

这是我使用的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

硬件:

  • CPU: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 -nulimit -s的值明显高于我正在使用的值(特别是104857616384)。

还有其他建议吗?

0 个答案:

没有答案