Mysql显示不超过5个并发连接

Ste*_*one 7 mysql testing performance load-testing

我正在我的全新服务器Apache/PHP/Mysql(Bitnami LAMP堆栈.php 7.0.3/MySQL 5.7.10)上执行一些负载测试.我在一个loadBalancer后面使用AWS和1个EC2实例.目前我正在使用loader.io或jmeter进行测试.我正在测试一个执行此查询的非常简单的API:

select *,sleep(0.5) from debug limit 1
Run Code Online (Sandbox Code Playgroud)

我添加了sleep(0.5),因为我想看看服务器如何处理多个并发连接,我发现了一个瓶颈:如果我运行"SHOW PROCESSLIST",即使我有10个并发用户,我也只能看到5个进程.负载测试显示连接已排队,因为测试期间响应时间从500毫秒增加到几秒(取决于测试持续时间和并发用户数).

我检查了

select @@max_connections
Run Code Online (Sandbox Code Playgroud)

它是151(默认值).max_user_connections为0.我应该检查哪些其他参数来增加数据库上的并发连接数?

如果我用5个并发用户运行测试,每个用户都会在500毫秒内得到响应.如果我添加的并发用户数多于响应时间减慢的话.

如果我在不访问数据库的API上运行负载测试,即使有400个并发用户也没有问题.

编辑:

用HTOP监控我看到:

任务:34,245 thr; 2运行

可能在这里问题?

非常感谢

Ste*_*one 2

解决方案其实很简单:

我使用的 Bitnami LAMP 堆栈是使用 PHP-FPM 配置的,因此配置不在 apache 端,而是在php/etc/common.conf

pm=ondemand
pm.max_children=5
pm.start_servers=2
pm.min_spare_servers=1
pm.max_spare_servers=3
Run Code Online (Sandbox Code Playgroud)

增加pm.max_children=5解决了这个问题。