【问题标题】:Set wait_timout to 30 ,still sleep connections are increasing with a constant rate将 wait_timout 设置为 30 ,仍然睡眠连接以恒定速率增加
【发布时间】:2013-12-19 17:47:37
【问题描述】:

[已解决]

似乎 PHP MYADMIN 变量成功了。 我将 wait_timeout 设置为 30 ,并将 Lock_wait_timeout 设置为 50
花了将近 6 个小时才恢复稳定,包括几次重新启动,可能需要时间来阅读这些更改。

问题:

网站地址http://topyaps.com

首页查询数322 in 2 seconds

慢查询日志文件中没有任何内容。

我正在使用 BITNAMI LAMP SERVER[amazon ec2] 来运行我的基于 wordpress 的重型网站。

问题是,我的服务器每 10 分钟崩溃一次。

原因,我猜, 当我使用腻子检查进程列表时,它似乎以非常高的速度不断增加,都指定sleep 命令。

我尝试设置变量,例如:

wait_timeout=30
interactive_timeout=30
connect_timeout=15
max_user_connections=25
max_connections=999

但它似乎没有任何帮助。

链接到 PHPMYADMIN 监视器的图片,用于单页加载[主页]:http://postimg.org/image/5qqgb30xb/

这是我从 PHPMYADMIN 状态中得到的信息:

Questions since startup: 50,617 Documentation
ø per hour: 138,361
ø per minute: 2,306
ø per second: 38

Statements  #   ø per hour  %
select  46,128  126.1 k 91.13
set option  2,452   6,702.5 4.84
change db   1,226   3,351.3 2.42
update  516 1,410.5 1.02
insert  135 369 0.27
delete  116 317.1   0.23
show binlogs    13  35.5    0.03
show variables  5   13.7    0.01
show processlist    5   13.7    0.01
show master status  4   10.9    0.01
show slave status   4   10.9    0.01
show databases  4   10.9    0.01
show tables 3   8.2 0.01
show status 3   8.2 0.01
show grants 1   2.7  <0.01
kill    1   2.7  <0.01
show table status   1   2.7  <0.01
select
set option
change db
update
insert
delete
show binlogs
Other
91%5%

我查看了我的页面查询,它显示“2 秒内有 328 个查询”。

如何真正停止这些连接???

【问题讨论】:

    标签: mysql amazon-ec2 connection-pooling bitnami


    【解决方案1】:

    我会先看看这些查询是什么。为什么你有那么多。如果它们都是重复查询并且在每个连接上都被调用,我会考虑缓存。您可以安装memcachedW3TotalCache 之类的插件来缓存您的数据库查询。您还可以使用 W3TotalCache 缓存前端。 Memcached 是一个键值存储,将查询结果存储在内存中。因此,您的数据库不会每次都命中相同的查询。 此外,如果您使用 innodb 作为存储引擎,请将 innodb_buffer_pool_size 更改为 RAM 的 60%

    【讨论】:

    • 你能帮我看看如何检查哪个查询没有运行或哪个查询很慢?我正在使用 ssh 客户端腻子。
    • 最简单的方法是安装phpmyadmin并查看他们的监控部分和慢查询日志
    • 你好,我更新了一些东西,有图片。我的锁 wait_timeout 是 31,536,000 和 wait_timeout 有什么不同吗?
    • 能否获取查询日志?
    • 我得到了一个慢查询,就是这样。我可以知道如何获得具有执行时间和休眠连接的完整查询集..比如这些连接来自哪里
    【解决方案2】:

    虽然我几乎无法访问您的网站,但对于普通的 wordpress 安装来说,查询与页面的比率似乎非常高。我最好的猜测是你有太多的插件,这反过来又在每个页面加载时运行了太多的自定义查询。

    您需要确定这些查询的来源,并找到一种方法将它们卸载到缓存机制,例如 memcache。有一些缓存插件(例如 W3TC)可以为您执行此操作,但在定制查询的情况下,它可能不太有效。

    您说您在 bitnami 灯配置上运行,因此您的 mysql 与您的网络服务器在同一台机器上运行。您是否考虑过运行单独的 mysql 服务器,例如 Amazon RDS?这不是一个神奇的解决方案,但可以让您更好地诊断瓶颈,同时阻止您篡改 mysql 配置,这很少是要走的路。

    您使用的是什么 DNS?我发现使用Cloudflare's 免费 dns 服务确实为静态文件提供了一个基本的缓存层,因此当用户点击首页时,他们可能会收到您的 html 的静态副本。您必须配置 cloudflare 以执行激进的 html 缓存。但正如我所说,它是免费的,而且很有帮助。

    【讨论】:

    • 是的,它又崩溃了,所以这就是你无法打开它的原因。
    • 很奇怪,但是当我启用 wp 超级缓存时,我的整个网站变成了一个空白页面。
    • 在复制时我可以看到主复制 在复制过程中此服务器未配置为主服务器。你想配置它吗?从属复制 此服务器未在复制过程中配置为从属。要配置吗?
    猜你喜欢
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2023-03-08
    • 2019-10-15
    • 2013-04-22
    • 2016-02-20
    • 2012-07-07
    相关资源
    最近更新 更多