首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql显示的并发连接不超过5个。

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

Stack Overflow用户
提问于 2016-02-19 14:47:44
回答 2查看 990关注 0票数 7

我正在我的全新服务器Apache/PHP/Mysql (比塔尼 LAMP堆栈)上执行一些负载测试。Php 7.0.3/MySQL 5.7.10 )。我使用的是AWS,loadBalancer后面有一个loadBalancer实例。目前,我正在使用loader.io或j测量仪进行测试。我正在测试一个执行此查询的非常简单的API:

代码语言:javascript
运行
复制
select *,sleep(0.5) from debug limit 1

我添加了睡眠(0.5),因为我想看看服务器在多个并发连接中的行为,我发现了一个瓶颈:如果我运行“显示PROCESSLIST”,即使我有10个并发用户,我也只能看到5个进程。负载测试表明,连接是排队的,因为在测试期间响应时间从500毫秒增长到了几秒(取决于测试的持续时间和并发用户的数量)。

我查过了

代码语言:javascript
运行
复制
select @@max_connections

它是151 (缺省值)。max_user_connections是0。我应该检查哪些其他参数来增加我的DB上的并发连接的数量?

如果我使用5个并发用户运行测试,每个用户在500毫秒内得到一个响应。如果我添加了比响应时间更多的并发用户,速度就会减慢。

如果我在不访问DB的API上运行负载测试,那么即使对400个并发用户也没有问题。

编辑:

使用HTOP进行监视--我看到:

任务: 34,245次;2次运行

可能就是这个问题吗?

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-24 11:09:09

解决办法其实很简单:

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

代码语言:javascript
运行
复制
pm=ondemand
pm.max_children=5
pm.start_servers=2
pm.min_spare_servers=1
pm.max_spare_servers=3

pm.max_children=5的改进解决了这个问题。

票数 2
EN

Stack Overflow用户

发布于 2016-02-24 06:15:18

有两个允许并发连接的区域:

1.网络服务器

检查web服务器允许的并发连接数量。

看见

  1. 千万并发连接的秘密-The内核是问题,而不是解决方案
  2. 一个web服务器可以处理多少套接字连接?
  3. 如何增加Apache中并发连接的最大数量?
  4. 如何优化apache web服务器的最大并发连接或增加apache中的最大客户端

明智地选择web服务器以处理更多并发连接。

2.数据库和开放文件

检查您的MySQL DB是否能够处理来自WebServer PHP的最大并发连接。

连接设置为更高的数量。

代码语言:javascript
运行
复制
set global max_connections := 800;

还可以检查open_files_limit的操作系统。在linux上,默认情况下,进程仅限于1024个文件。这很低,因为每个线程、连接,当然还有文件--都是linux中的文件句柄。因此,将open_files_limit设置为一些慷慨的数字(例如10000),以清除与操作系统的许多连接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35508031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档