服务器:Linode 专用 4G Ubuntu 18.04,Webmin + Virtualmin
mysql 服务器时不时地会停止并在重新启动时失败。以下是我能找到的日志:
Apr 11 20:54:57 bamboo kernel: [ 2082.915857] [ 7664] 112 7664 406072 46295 745472 3 0 mysqld
Apr 11 20:54:57 bamboo kernel: [ 2082.915859] [ 7701] 0 7701 129687 307 679936 1435 0 apache2
Apr 11 20:54:57 bamboo kernel: [ 2082.915860] [ 7702] 0 7702 129683 253 667648 1487 0 apache2
Apr 11 20:54:57 bamboo kernel: [ 2082.915861] Out of memory: Kill process 7664 (mysqld) score 40 or sacrifice child
Apr 11 20:54:57 bamboo kernel: [ 2082.919284] Killed process 7664 (mysqld) total-vm:1624288kB, anon-rss:185180kB, file-rss:0kB, shmem-rss:0kB
Apr 11 20:54:57 bamboo kernel: [ 2082.941447] oom_reaper: reaped process 7664 (mysqld), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
Apr 11 20:54:57 bamboo systemd[1]: mysql.service: Main process exited, code=killed, status=9/KILL
Apr 11 20:54:57 bamboo systemd[1]: mysql.service: Failed with result 'signal'.
Apr 11 20:54:57 bamboo systemd[1]: mysql.service: Service hold-off time over, scheduling restart.
Apr 11 20:54:57 bamboo systemd[1]: mysql.service: Scheduled restart job, restart counter is at 4.
Apr 11 20:54:57 bamboo systemd[1]: Stopped MySQL Community Server.
..........
Apr 11 14:02:53 bamboo systemd[1]: mysql.service: Scheduled restart job, restart counter is at 4.
Apr 11 14:02:53 bamboo systemd[1]: Stopped MySQL Community Server.
Apr 11 14:02:53 bamboo systemd[1]: Starting MySQL Community Server...
Apr 11 14:02:53 bamboo mysqld[4345]: Initialization of mysqld failed: 0
Apr 11 14:02:53 bamboo systemd[1]: mysql.service: Control process exited, code=exited status=1
Apr 11 14:02:53 bamboo systemd[1]: mysql.service: Failed with result 'exit-code'.
Apr 11 14:02:53 bamboo systemd[1]: Failed to start MySQL Community Server.
Apr 11 14:02:53 bamboo systemd[1]: mysql.service: Service hold-off time over, scheduling restart.
看起来是内存问题。但我在这台服务器上托管了一些非常小的 wordpress 网站,它们不可能用完内存。
您可以看到 CPU 使用率出现了峰值,这是因为 mysql 数据库停止了。
当时我并没有做任何特别的事情,因此很难重现问题并观察可能的原因。我想要调查这个问题,我需要更深入地研究日志,但这完全超出了我的知识范围。
有人可以解释一下如何找到可能的原因吗?
答案1
内存不足:终止进程和oom_reaper......这显然是记忆问题。
MySQL 停止后,结果是什么:free -h
?
尝试重新启动 MySQL 并检查htop
其他控制台,以实时监控进程、RAM、CPU……
在 MySQL 控制台中检查 INNODB 缓冲区大小,它可能大于你的物理可用内存:
show global variables like 'innodb_buffer_pool_size';
您有一些 SWAP 分区吗?
对于 Wordpress 方面,有 Wordpress 网站和 Wordpress 网站... 你有插件吗?有些可能是数据库密集型的(或者只是没有优化)。