今天我看到MySQL / MariaDB停止在CentOS VPS上运行。 当我检查状态时,我得到:
# service mysql status ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
所以我删除该文件,然后重新启动服务。 但是在当天晚些时候,MySQL将会再次离线,并且locking文件将仍然存在。 所以发生了什么事情导致MySQL死亡,但留下locking文件,这告诉我它不是一个干净/顺利退出。
在过去,当我看到锁文件存在,但服务没有运行,这是因为整个VPS突然重启。 但这不是这种情况,因为我的正常运行时间是160天以上的VPS。
我注意到fail2ban
今天禁止在VPS上的Wordpress站点上进行一些随机的黑客攻击。 所以有相当数量的stream量试图在这里或那里锤击服务器,直到他们得到autobanned。
更新:看完我的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
进程被选为受害者,可能是由于内存使用率高,内存活动相对较低。
调整可用的缓冲池大小,使MariaDB占用更less的RAM,并且不会触发OOM杀手(这可能会损害性能),或者给系统更多的RAM或交换空间。