サーバー: 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
メモリ不足: プロセスを強制終了そしてリーパー...明らかにメモリの問題です。
MySQL が停止した場合、次の結果はどうなりますかfree -h
?
MySQL を再起動してhtop
別のコンソールでチェックインし、プロセス、RAM、CPU などをリアルタイムで監視してみてください。
MySQL コンソールで INNODB バッファ サイズを確認してください。おそらく、使用可能な物理メモリよりも大きいでしょう。
show global variables like 'innodb_buffer_pool_size';
SWAP パーティションはありますか?
Wordpress 側には、Wordpress ウェブサイトと Wordpress ウェブサイトがあります... プラグインはインストールしていますか? プラグインの中には、データベースを大量に使用するものもあります (または、単に最適化されていないものもあります)。