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

如果睡眠进程过多,则重新启动mysql的Cron作业,mysql,cron,Mysql,Cron,我有几个脚本,每10分钟运行一次。 但有时脚本无法正确执行,因此会导致大量睡眠过程 所以我希望每n小时重新启动一次mysql,或者当有太多的睡眠进程时,我尝试了以下方法 ***/etc/init.d/mysql restart(我知道这是每分钟的事,但只是一个例子)但不起作用 或者有没有其他方法可以阻止睡眠进程?如果有很多数据,我的每个脚本可能会运行8分钟。所以我将cron作业设置为10分钟 谢谢。首先,正如上面Bjoern所说:这应该是一个临时的解决办法,因为它不是一个解决方案 您的问题是您正

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

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

或者有没有其他方法可以阻止睡眠进程?如果有很多数据,我的每个脚本可能会运行8分钟。所以我将cron作业设置为10分钟


谢谢。

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

您的问题是您正在尝试重新启动mysql客户端,而不是守护进程(mysqld),请尝试以下操作:

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

睡眠进程是处于空闲状态的mysql连接,
已建立,仍在等待下一个查询执行。
您可能正在使用myisam,并且您的脚本正在进行一些繁重的编写,
这样就阻塞了表的读取

但是,您不应该在睡眠中终止这些进程

睡眠状态的问题是它仍然会对连接池产生影响,
并可能导致

事情你必须做:

  • 找出脚本中的问题,并使其正常工作
  • 或者增加允许连接的最大值(缓解问题,但比重启mysql服务器效果更好)

这里有一篇关于

重新启动数据库服务器只能是一种临时解决方法,因为它可能会给相关脚本带来许多其他问题。我的建议:试着找出这些休眠进程存在的原因,并在第一时间建立起来,以找到问题的根源。@Bjoern谢谢你的建议。我如何检查错误?休眠进程是因为连接太多,是吗?但我只是使用msql_connect。因为我的脚本使用调制解调器运行,所以有时我不确定是否是脚本或调制解调器问题…这取决于它是什么类型的脚本,如何调用它,以及它具体做什么。可能会在一个新的SO问题中发布此内容。非常感谢您的建议。是的,您完全正确,我正在使用myisam,脚本正在进行大量编写,有些脚本超过5个。我试图查找错误。如果脚本有太多
if…else if…else…
会影响进程吗?
if。。否则
很好,请查找
选择
插入
、和
更新
sql。我正在使用
选择自。。。。限制0,95
,然后
If(){//process…;//update…}
,它将每10分钟重复95次。我正在使用PDO进行更新。如果我在脚本中从不包含mysql_connect,而只包含PDO connect,它将有连接错误,因此我必须将两者都放在那里…你能用一次更新进行整合吗?你的意思是在所有过程完成后只更新一次?这是一个很好的方法,我从来没有想过,这样我就可以避免有太多的
更新
。非常感谢你的回答。是的。我需要研究这个问题,而不是每次都重新启动它。真的谢谢。