ApacheとMySQLはどのくらいの頻度で再起動する必要がありますか?


9

ApacheとMySQLをどのくらいの頻度で再起動する必要がありますか(特に毎週15万ヒット)、特定の時間ごとに再起動すると実際にどのようなメリットがありますか?

回答:


19

システムが適切に調整されていて、アプリケーションにメモリリークなどの問題がない場合は、パッチを適用するためにシステムを再起動するだけで済みます。


9

ApacheとMySQL自体には、メモリリークがないはずです。ほとんどのデータベースサーバーは、稼働時間を長くすればするほどうまく動作します。ただし、PHPのようにApacheにコンパイルされるモジュールには、多くの場合、メモリリークがあります。

ApacheのMPMモジュールが自動的万のリクエスト後のプロセスをリサイクルしています。を別の値に変更できMaxRequestsPerChildますが、デフォルトは10,000です。


これはどういう意味ですか?ほとんどのデータベースサーバーは、稼働時間を長くすればするほどうまく動作しますか?何をないよりよい意味ですか?
tshepang 2011

5

Apacheは定期的に再起動する必要はありません。MySQLも同様です。

preforkモードで実行されているApacheは、MaxRequestsPerChildを使用して子プロセスをリサイクルできます。遅いメモリリークなどを防ぐので、これは良いことです。

MySQLを再起動するとサービスが停止するため、MySQLを定期的に再起動しないでください。MySQLを再起動すると、エンジンが起動するまで待機する必要があり、また、キャッシュがクリアされるため、ウォームアップするまでパフォーマンスが低下します。アドレス空間の断片化のため、時々再起動する必要があるようです[1]が、これは64ビットシステムではそれほど発生しないはずです。

[1]たとえば、1秒あたりの平均クエリ数が100を超えるビジーサーバーで9か月ごと


3

パフォーマンス上の理由から、できる限りMySQLを再起動しないでください。MySQLはデータページとインデックスをキャッシュするために大量のメモリを使用します。MySQLを再起動すると、キャッシュされたすべてのページが解放され、キャッシュをウォームアップするための時間が必要になります。負荷の高いサイトでデータベースを再起動すると、パフォーマンスの問題が発生する可能性があります。

あなたのサイトはそれほどロードされていません(1週間あたり15万ヒットは1req / 4sしかありません)ので、MySQLの再起動は大きな問題を引き起こしません。


2

システムまたはサービスをいつ再起動する必要があるかを理解するには、まずその理由を理解する必要があります。最も一般的な理由はメモリリークですが、不適切に作成されたソフトウェア(あまりにも一般的すぎる!)など、適切でない場合にファイルハンドルを閉じるなど、適切な内部ハウスキーピングを実行しないものもある可能性があります。メモリリークと同じではありませんが、症状は同じです。ApacheとMySQLはどちらも非常に安定していることがわかっており(アルファ版またはベータ版を実行している場合を除く)、何年も問題なく実行できます。通常、オペレーティングシステムは、いずれかのアプリケーションがパッチを要求する前に、パッチを適用するために再起動する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.