我已经安装了Linux,安装了MySQL5.7.13的Debian Jessie。
我在中设置了以下设置
my.cnf: default_storage_engine= innodb, innodb_buffer_pool_size= 44G
当我启动MySQL时,我使用SET GLOBAL max_connections = 1000;手动执行set max_connections
然后,我启动了负载测试,它会向DB服务器发送大量流量,其中大部分是缓慢/错误的查询。
我期望的结果是我将达到接近1000个连接,但不知何故,MySQL将其限制为462个连接,并且我找不到导致此限制的设置。我们甚至还没有达到CPU或内存的极限。
如果你有任何想法,或者可以给我指出一个你认为可能是错误的方向,这将是非常有帮助的。
发布于 2016-07-12 20:42:53
你用的是什么负载测试?你确定它可以利用大约数千个连接吗?
您可能会在磁盘IO区域耗尽您的服务器资源,特别是当您正在谈论许多缓慢/糟糕的查询时。您是否检查了服务器上的磁盘利用率?
即使你的InnoDB池很大,你的数据库仍然需要先把你的数据库读到缓存中,如果你的整个数据库很大,那也帮不了你。
我建议您再次执行这样的测试,并在负载测试期间使用iostat或iotop实用程序跟踪磁盘性能。
有关服务器性能故障排除的更多示例,请查看here。
发布于 2016-07-13 21:21:13
我发现了这个问题,这是由于Apache服务器的限制,在/etc/apache2/mods-enabled/mpm_prefork.conf中有一个“隐藏”设置,它会覆盖/etc/apache2/apache2.conf中的设置
谢谢!
https://stackoverflow.com/questions/38310913
复制相似问题