如何监控和自动重启mysql?

我在Debian上运行mysql

有没有办法监视MySQL并自动重新启动,如果它locking? 例如,有时服务器开始占用CPU的100%,并开始运行非常缓慢。 如果我重新启动mysql,东西清理和服务器开始工作正常,但我并不总是存在手动重新启动。

有没有一种方法来监控MySQL,如果CPU超过95%,超过10分钟,那么MySQL将自动重新启动

你可以用monit来做到这一点。 例如,要警告并重新启动mysql,假设您在60秒的周期内运行monit:

 check process mysqld with pidfile /var/run/mysqld.pid if cpu usage > 99% for 10 cycles then alert if cpu usage > 99% for 10 cycles then restart 

monit非常灵活,可以对stream程,内存等进行任何forms的监控。

这可能也可以用ps-watcher来完成,但是很难让ps-watcher记住这种状态并采取行动。 monit是正确的使用工具。

我相信你正在寻找自动尼斯守护进程 。

借调弗朗西斯科,我build议不要以这种方式重新启动MySQL。 因为:

  1. CPU峰值指示活动,这意味着重新启动它几乎可以在数据库正在做的任何操作。
  2. 使用高达100%的CPU并不是一件坏事,这就是它的计算能力:-)事实上,你可以看看服务器的负载超过了CPU使用率,对任何出错的地方给出任何指示。
  3. 根据您使用的是哪个引擎,失败的事务在重新启动时可能不会被重播,这意味着您将失去其中一些。

说到这一点,你可以寻找一些东西:

  1. 为服务器configuration了“良好”的MySQL; 在数据库的大小和运行的操作上是否有足够的空间?
  2. 有没有其他的服务,导致这种负载,如果是这样,为什么呢?
  3. 最后,如果这会“减慢”服务器上其他服务的运行速度,则应考虑重新平衡每个服务的资源,以便在所有服务之间共享服务器的计算能力。