MySQL max_connections

时间:2016-07-11 15:36:01

标签: mysql

我安装了Linux,安装了Mysql 5.7.13的Debian Jessie。

我在

中设置了以下设置

my.cnf: default_storage_engine= innodb, innodb_buffer_pool_size= 44G

当我启动MySQL时,我使用set max_connections

手动SET GLOBAL max_connections = 1000;

然后我触发我的loadtest,它会向DB服务器发送大量流量,这些流量主要由慢/坏查询组成。

我预期的结果是我会接近1000个连接,但不知何故,MySQL将其限制为462个连接,我找不到负责此限制的设置。我们甚至没有接近最大化CPU或内存。

如果您有任何想法或者可以指出我认为错误可能会发生的方向,那将非常有帮助。

2 个答案:

答案 0 :(得分:0)

你使用了什么负载测试?你确定它可以利用大约数千个连接吗?

您可能会在磁盘IO区域中最大化服务器资源,尤其是在您谈论很多慢/坏查询时。您是否检查过服务器上的磁盘利用率?

即使您的InnoDB池大小很大,您的数据库仍然需要先将数据库读入缓存,如果您的整个数据库很大,它将无法帮助您。

我建议您再次执行此类测试,并使用iostat或iotop实用程序在loadtest期间跟踪磁盘性能。

查看here以获取有关服务器性能故障排除的更多示例。

答案 1 :(得分:0)

我发现了这个问题,这是对Apache服务器的限制,在/etc/apache2/mods-enabled/mpm_prefork.conf中有一个“隐藏”设置会覆盖/etc/apache2/apache2.conf中的设置

谢谢!