有没有办法释放mysql连接?

问题描述 投票:-1回答:2

事情是我有一个cronjob,每2分钟重复一次,并调用一个PHP脚本,它做了一些mysql查询..现在这个东西让mysql很忙,在这个过程中消耗了太多的内存..我分配的RAM是2GB ..它会在4小时左右的时间内使用,然后在几个小时内就可以使用2GB的额外VSwap。然后它只是崩溃给mysqli::real_connect(): (HY000/2002): Connection refused

我不确定是什么问题。我知道每2分钟调用一次mysql查询的cron可能是一个糟糕的调用..但我不知道如何管理它,否则......所以我需要一个解决方案。我使用的是CentOS 6.6服务器

php mysql unix mysqli
2个回答
0
投票

将频率更改为20分钟,以便有时间确定实际情况,而不是每2分钟进行一次活动。


0
投票

出了什么问题是您的系统配置错误。在Linux系统上,进入交换非常糟糕 - 它不仅会因为页面输出/页面返回而导致速度减慢,还会丢失VFS缓存,并且随着负载的增加,进程也会先发制人而不是被允许屈服。

然后它只是崩溃给予

这似乎不太可能。 OOM杀手更有可能正在收获这个过程。

正确配置系统将花费大量时间和知识,但您应该首先安装mysqltuner.pl并重新配置MySQL实例以适应可用的RAM。

每2分钟重复一次

这不好。它加剧了导致竞争条件的分页问题。因此,作为一个优先事项,如果另一个实例处于活动状态(例如,使用锁定文件),则应将其配置为失败。请注意,这是一个快速解决方案。您应该设计系统,以便不需要频繁的批处理操作。

© www.soinside.com 2019 - 2024. All rights reserved.