我在 Debian 上运行 mysql。
有没有办法监控 mysql 并在它锁定时自动重新启动它?例如,有时服务器开始占用 100% 的 CPU 并开始运行非常缓慢。如果我重新启动 mysql,事情就会好转,服务器开始正常工作,但我并不总是在场手动重新启动它。
有没有办法监控 MySQL,如果 CPU 连续 10 分钟以上高于 95%,那么 MySQL 将自动重启
答案1
答案2
我支持 Francisco 的观点,我建议不以此方式重启 MySQL。因为:
- CPU 峰值表示活动,这意味着重新启动它几乎可以完成 DB 正在执行的任何操作。
- CPU 使用率高达 100% 并不是一件坏事,这就是它的计算能力所致 :-) 事实上,您更愿意查看服务器的负载,而不是 CPU 使用率(以百分比表示),因为这根本无法表明出现了什么问题。
- 根据您使用的引擎,失败的交易可能不会在重新启动时重播,这意味着您将丢失其中一些。
话虽如此,你可以寻找以下一些东西:
- MySQL 是否为服务器“良好”配置;即它是否有足够的空间容纳数据库的大小和它所运行的操作?
- 是否有其他服务导致这种负载?如果是,为什么?
- 最后,如果这“减慢”了服务器上其他服务的运行速度,您应该考虑重新平衡每个服务的资源,以便服务器的计算能力在所有服务之间共享。
答案3
我相信你正在寻找和自动友好守护进程。