我最近从 MySQL 切换到 MariaDB 来托管 WP 网站。一切都很顺利,我甚至注意到速度有所提高(这可能只是安慰剂 ;)。但从那时起,MariaDB 开始每隔大约一周或两周定期死机。
当我返回服务器时,我看到的是:
user@myserver:~# service mysql status
MariaDB is stopped.
但是当我查看日志时,它们是空的。我不知道如何调试它。任何关于如何追踪 MariaDB 死机的原因和方式的提示都会对我有很大帮助!
答案1
也许您的服务器内存不足,并且 OOM-killer 会终止 MariaDB 进程。
要检查它是否是 OOM-killer,请执行以下操作:
grep -i oom /var/log/messages
和grep -i oom /var/log/syslog
dmesg | grep -o oom
在检测到 MariaDB 崩溃/停止后。
如果grep
发现什么,很可能是 OOM-killer 正在终止你的数据库进程。
更新:根据 Ralf 的调查,有问题的进程似乎是/usr/lib/php/sessionclean
。请参阅错误报告这里
答案2
感谢 @shodanshok,我找到了这个问题。在崩溃前后跟踪 /var/log/syslog,我在崩溃前经常发现以下情况:
Apr 30 22:09:01 servername CRON[3818]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean)
Apr 30 22:09:01 servername CRON[3819]: (root) CMD ( [ -x /usr/lib/php5/sessionclean ] && /usr/lib/php5/sessionclean)
事实证明,会话清理 cron 占用大量资源并导致 MySQL/MariaDB 终止,这是一个已知问题。更多信息请参见此处: https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1356113