php - MySQL的threads_connected数量减慢了我的网站速度

标签 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

最佳答案

Can i improve this by limiting the number of "threads_connected"?

绝对不是。

通过限制连接数,您所能做的就是给您网站的用户带来错误,因为他们的特定 Apache 进程将无法连接到数据库。

问题不在于连接的线程数。这是真正问题的一种症状,即您有一个或多个查询性能不佳,或者您没有足够的内存供 Apache 扩展流量变得繁重,迫使您的机器进行大量交换,从而减慢 Apache 的速度,使其保持连接打开时间更长。

I need a quick solution for this

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

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

MySQL 中的

SHOW FULL PROCESSLIST; 将回答这个问题。如果他们只是在 sleep ,他们不会伤害 MySQL 方面的任何东西,并且您可能想要限制 Apache 进程的数量,但如果这是站点流量水平的副作用,那么您的服务器实际上可能太小,或者您可能需要禁用 HTTP keepalive,或调整超时,如果浏览器连接保持打开的 Apache 子项处于空闲状态,消耗内存。

关于php - MySQL的threads_connected数量减慢了我的网站速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30928921/

相关文章:

php 变量未返回预期内容

java - mysql中特定的字符串自动递增

apache - 如何在 Apache 上配置子域以指向另一个 Web 应用程序或目录;后端有tomcat

apache - 预期 </VirtualHost> 但看到 </Directory>

macos - 如何确定哪个进程正在 OSX 上监听

php - 通过脚本修改 Windows Azure Web 角色上的 php.ini

php - cakephp 如何进行此查询

PHP MySQL 查询在结果中显示错误的日期时间

mysql - 如何在 Drupal 7 中将术语从一个词汇表移动到另一个词汇表而不丢失节点引用?

php - SQLState 23000 - 违反完整性约束 1062 重复条目