MySQL的threads_connected数减缓了我的网站

时间:2015-06-19 02:23:34

标签: php mysql apache prestashop prestashop-1.5

我在Prestashop 1.5.4上运行了一个商店。我一直对网站行为有疑问。

每次我检查这个号码

user@server:~$ mysql -se "show status like '%threads_connected%'"

如果数字超过25,我的网站变得非常慢。打开页面需要永远,页面加载可能会高达1 - 2分钟。

唯一的解决方案(临时)是我重新启动apache服务。

我很确定25是一个相当低的数字。

如果您需要知道,我无法直接访问my.ini,也无法访问任何MySQL服务器配置。我的数据库存储在共享(DBaSS)中。

但我可以完全访问我的网络服务器(apache2.conf,php.ini,www.example.com.conf)

可能会有所帮助的一些信息:

-se "show variables like '%max%'"

输出:

Image 1 Image 2

我想我的问题是如何提高性能?我可以通过限制“threads_connected”的数量来改善这个吗?

脚注:

我知道代码中的某个地方可能存在错误的查询,但是,目前我需要快速解决此问题。审核所有查询可能需要一些时间。

编辑#1

也许这些信息可能会提供一些想法

php.ini php.ini

编辑#2 apache2.conf

1 个答案:

答案 0 :(得分:3)

  

我可以通过限制“threads_connected”的数量来改善这一点吗?

绝对不是。

通过限制连接数量可以做的就是为您网站的用户造成错误,因为他们的特定Apache进程无法连接到数据库。

问题是连接的线程数。这是真正问题的症状,即您有一个或多个执行效果不佳的查询,或者您没有足够的内存以便Apache扩展流量变得很大,迫使你的机器进行大量交换,从而减慢了Apache的速度,使得连接打开的时间更长。

  

我需要一个快速的解决方案

抱歉......除了找到实际问题并修复它之外,没有其他解决方案。

比连接数更有用的是这些连接现在正在做什么?

MySQL中的

SHOW FULL PROCESSLIST;将回答这个问题。如果他们只是在睡觉,他们不会伤害MySQL方面的任何东西,你可能想限制Apache进程的数量,但如果这是网站流量水平的副作用,那么你的服务器实际上可能也是如此如果浏览器连接保持空闲的Apache子节点,消耗内存,则可能需要禁用HTTP keepalive或调整超时。