Mysql

當出現問題時給我我的殺傷力

  • July 8, 2010

我們已經吃過幾次了。突然,我們的生產伺服器不會響應,因為程序處於無限循環中,或者 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 使用者了)。

pam_limits.so 模組是一個很好的工具,可以限制記憶體、打開文件……並為使用者和組設置好的優先級。

rpm -ql pam | grep limits
man limits.conf
less /etc/security/limits.conf

http://en.wikipedia.org/wiki/Magic_SysRq_key

引用自:https://serverfault.com/questions/155923