出现问题时给我我的杀伤力

Kon*_*rak 4 mysql linux command-line-interface kill top

我们已经经历过几次了。突然我们的生产服务器不会响应,因为一个进程处于无限循环中,或者 MySQL 服务器停止服务新请求,因为一个查询阻塞了一切......

我们通过 SSH 连接到服务器并使用ps auxortop找到罪魁祸首,mytop或者SHOW FULL PROCESSLIST在 MySQL 中找到违规的进程 ID 和kill它。然后我们尝试在测试服务器上重新创建这种情况并修复错误。

但有时服务器挂得太好了,您ps aux/ top/ mytop/SHOW FULL PROCESSLIST无法通过 - 甚至管理员也被阻止。

确保管理员始终可以访问服务器并终止违规进程或查询(在 Linux 和 MySQL 上)的最佳方法是什么?

  • 我们可以为不同的用户分配优先级吗?
  • 为root预留部分资源?

我已经检查过nice(1),但不断地与 nice -20 建立开放连接似乎有点过分且难以使用(更不用说作为 root 的危险了)。