5

システムのメモリが不足すると、ubuntu 12.04 は mysql プロセスを強制終了します。

Out of memory: Kill process 17074 (mysqld) score 146 or sacrifice child

したがって、プロセスは強制終了されます。これは、サーバー負荷のピーク時に発生し、主に apache が暴走し、残りの使用可能なメモリを消費することが原因です。考えられるアプローチは次のとおりです。

  • どこかで mysql の優先順位を変更して、それが強制終了されないようにします (おそらく、他の何かが強制終了されるため、不適切な修正です)。
  • mysql のステータスを監視し、それが強制終了されるたびに自動的に再起動します (私が考えているものですが、その方法がわかりません)。

あなたはそれをどのように見ますか?

4

2 に答える 2

8

データベース サーバーの突然の終了は、非常に深刻なクラッシュです。正常に再起動しない可能性があるため、本番システムではこれを避ける必要があります。

データベース サーバーは共有リソースであり、本番環境で計画外に終了することはほとんどありません。計画外の終了を引き起こす唯一の原因は、壊滅的なハードウェア障害または電源障害です。適切に構成された運用データベース サーバーのほとんどは、10 年に 1 回またはそれ以下の頻度で予期せぬ終了を迎えます。真剣に。

何をすべきか?

Apache 構成を修正します。使用できるワーカー スレッドとプロセスの数を制限して、暴走しないようにします。これを行う方法を学びます。それは不可欠です。ここを参照してください: http://httpd.apache.org/docs/current/mod/mpm_common.html#maxrequestworkers

Apache が暴走する原因となっている Web アプリの欠陥を修正します。

可能であれば、mysqld サーバーを apache とは別のサーバー マシンに移動して、2 つのサーバーが同じハードウェア リソースをめぐって競合しないようにします。

Apache ワーカー スレッドまたは他のクライアントから受け入れる接続の数を制限するように mysqld を構成します。Web アプリはおそらく、ワーカー スレッドが接続を待機する必要がある状況を処理します。こちらをご覧ください。http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_max_connections

EC2 マイクロ インスタンスを使用していますか? 本格的なチューニングを行う必要があります。ここを参照してください:http://ubuntuforums.org/showthread.php?t=1979049

于 2013-06-22T14:35:43.803 に答える
3

mysql のステータスを毎分 (cron で) チェックし、クラッシュした場合は再起動できます。

* * * * * service mysql status | grep running || service mysql restart
于 2015-04-04T09:03:12.557 に答える