Mysql
當出現問題時給我我的殺傷力
我們已經吃過幾次了。突然,我們的生產伺服器不會響應,因為程序處於無限循環中,或者 MySQL 伺服器停止服務新請求,因為一個查詢阻塞了一切……
我們通過 SSH 連接到伺服器並使用
ps aux
ortop
來查找罪魁禍首,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