Centos
MySQL/MariaDB 停止執行。我如何找出原因?
今天我看到 MySQL/MariaDB 停止在 CentOS VPS 上執行。當我檢查狀態時,我得到:
# service mysql status ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
所以我刪除了該文件,然後重新啟動服務。但是當天晚些時候,MySQL 將再次離線,並且鎖定文件仍然存在。所以發生了一些事情,導致 MySQL 死掉但留下了鎖定文件,這告訴我它不是一個乾淨/順利的退出。
過去,當我看到鎖定文件存在但服務未執行時,是因為整個 VPS 突然重啟。但這不是這裡的情況,因為我在 VPS 上的正常執行時間是 160 多天。
我注意到
fail2ban
今天禁止在 VPS 上的 Wordpress 網站上進行一些隨機黑客攻擊。因此,有相當多的流量試圖在這里和那裡敲擊伺服器,直到它們被自動禁止。
- 如何確定導致 MySQL 隨機停止的原因?
- 自動重啟 MySQL 的推薦方法是什麼?我可以使用像Supervisor這樣的東西嗎?
更新:查看我的
messages
日誌後,我看到了這個:Dec 1 14:06:42 localhost kernel: Out of memory: Kill process 25063 (mysqld) score 24 or sacrifice child Dec 1 14:06:42 localhost kernel: Killed process 25063, UID 27, (mysqld) total-vm:773716kB, anon-rss:32300kB, file-rss:48kB
所以這意味著 MySQL 只是被請求超載(可能來自 httpd)?
OOM 殺手在系統記憶體不足和交換時被觸發 - 該
mysqld
程序被選為受害者,可能是由於 RAM 使用率高和其 RAM 上的活動相對較低。調整可用緩衝池大小以使 MariaDB 佔用更少的 RAM 並且不觸發 OOM 殺手(這可能會損害性能)或為系統提供更多 RAM 或交換。