Apacheのグレースフルリスタートとユーザーエクスペリエンスの影響


10

運用gracefulサーバーでApacheの再起動を実行しても安全ですか?グレースフルリスタートはどのような影響を及ぼし、どのような影響がありますか(ある場合)?有害な影響はありますか(例:短時間であっても、ダウンタイム)?

私は以下のリソースを検討しましたが、ユーザーへの影響がどのようになるかはまだ不明です。

回答:


9

グレースフルリスタートを実行すると、既存の接続が正常に完了し、その時点でワーカーが終了します。新しいワーカーは、新しい接続を処理するためにすでに開始されているはずです。

接続の失敗や遅いページの読み込みに気付くべきではありませんが、実際には、構成がマスタースレッドによって再読み込みされている間、新しい接続が一時的にキューに表示されることがあります(鉱山は0.5秒未満です)

新しい構成を取得するために再起動している場合は、サーバーが正しく再起動できない可能性のある構成エラーが発生する可能性があります。

サーバーが異常な状態の場合、正常に再起動できない可能性があります(おそらく、正常な再起動を検討しているのはそのためです)。


1

Apacheが静的ファイルを提供している、とのようなものにフロントとして機能していない場合は、それはかなり滑らかです。ほとんどのユーザーは気づくことすらありませんし、そうするユーザーはそれを通常のグリッチと見なします。Apacheは古いリクエストが処理されるまで新しいリクエストを処理しないため、すべてが完了するまで待機します。誰かが500KBのファイルを68KB / sでダウンロードしている場合、他のサービスが行われていない間、長時間待機している可能性があります。

Apacheがアプリケーションサーバーの前面にある場合、状況は大きく異なる可能性があります。経験上、そのサーバーと対話するためのUXは、アプリサーバーが起動してロードされ、キャッシュがウォームされるまでは非常に悪いものになります。


5
また、/etc/init.d/httpd configtest運用サーバーでApacheの再起動を行う前に、を実行することが非常に重要です。
2014

確かに— configtestを実行することは非常に重要です。IIRC、Apacheの新しいバージョンでは、グレースフルリスタートの前に暗黙のconfigtestを実行する可能性があり、configtestに失敗した場合、再起動は続行されません。
stellarchariot 14

5
"Apacheは古いリクエストが処理されるまで新しいリクエストを処理しないため、すべてが完了するまで待機します。誰かが500KBファイルを68KB / sでダウンロードしている場合、長時間待機している可能性があります。サービングが起こっています。」これは正確ではありません。構成はすぐに再読み込みされ、新しい子プロセスが作成され、接続を受け入れ、要求を処理し、前の世代が最後の要求を終了します。
covener 2014

0

前述の優雅なパラメーターは、最初にすべての子プロセスに現在のタスクを完了するように通知することで、再起動プロセスを開始するようhttpdに指示します。すべての子プロセス(http要求を処理しているプロセス)がタスクを完了すると、閉じます。現在要求を処理していない子プロセスがある場合、それらはすぐに閉じます。

一方、stopはすべての子プロセスを即座に終了しようとするため、エンドユーザーがハングする可能性があります。私の好みは優雅です。これは、顧客にサービスを提供している子プロセスを突然終了するよりも友好的であるためです。多くの管理者、特にプログラマーは、stopを使用してサーバーを停止します。これは、優雅さが存在することさえ知らないことが多いためです。

リンク:https : //www.godaddy.com/garage/tech/config/how-to-restart-apache-without-rebooting-your-centos-linux-server/ Link

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