我安装了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或内存。
如果您有任何想法或者可以指出我认为错误可能会发生的方向,那将非常有帮助。
答案 0 :(得分:0)
你使用了什么负载测试?你确定它可以利用大约数千个连接吗?
您可能会在磁盘IO区域中最大化服务器资源,尤其是在您谈论很多慢/坏查询时。您是否检查过服务器上的磁盘利用率?
即使您的InnoDB池大小很大,您的数据库仍然需要先将数据库读入缓存,如果您的整个数据库很大,它将无法帮助您。
我建议您再次执行此类测试,并使用iostat或iotop实用程序在loadtest期间跟踪磁盘性能。
查看here以获取有关服务器性能故障排除的更多示例。
答案 1 :(得分:0)
我发现了这个问题,这是对Apache服务器的限制,在/etc/apache2/mods-enabled/mpm_prefork.conf中有一个“隐藏”设置会覆盖/etc/apache2/apache2.conf中的设置
谢谢!