如果睡眠过程太多,则重启mysql的Cron作业

时间:2011-12-13 10:11:18

标签: mysql cron

我有几个脚本每10分钟运行一次。 但有时脚本将无法正常执行,因此会导致很多睡眠过程。

所以我希望每n小时重新启动一次mysql,或者当有太多的睡眠过程时,我尝试了类似的东西 * * * * * /etc/init.d/mysql restart(我知道这是每一分钟,但只是一个例子)但不起作用。

或者还有其他方法来阻止睡眠过程吗?如果有很多数据,我的每个脚本都可能运行8分钟。所以我设置了10分钟的cron作业。

谢谢。

2 个答案:

答案 0 :(得分:4)

首先,正如Bjoern所说:这应该是一个临时解决方法,因为它不是一个解决方案。

你的问题是你正在尝试重新启动你的mysql客户端,而不是守护进程(mysql d ),试试这个:

0 * * * * /etc/init.d/mysqld restart

答案 1 :(得分:3)

休眠进程是处于空闲状态的mysql连接,
已建立并仍在等待下一个查询执行 你有可能正在使用myisam,你的脚本正在做一些重写,
因此阻止表读取

但是,你不应该在睡眠中杀死进程。

对睡眠状态的关注是它仍然有助于连接池,
并可能导致too many connections error

件事你必须这样做:

  • 找出脚本上的问题并使其正常工作
  • 或增加最大允许连接(姑息,但比重启mysql服务器更好)

以下是关于sleeping connection

的文章