トップ回答者
IIS8.0におけるラビットフェール保護について

質問
-
八木と申します。ラビットフェール保護についてですが
「アプリケーション プールが、それに割り当てられたワーカー プロセスで所定の期間に問題が発生したものの
数が多すぎることを検出すると、ラピッド フェール保護が開始されます。
World Wide Web 発行サービス (WWW サービス) との通信チャネルが切断されます。
WWW サービスは、通信の消失を検出し、
適切な操作 (一般的にはイベント ログへのエラーまたは警告の送信とワーカー プロセスの再開) を実行します。」
参照URL:
http://msdn.microsoft.com/ja-jp/library/cc779875%28v=ws.10%29.aspx
上記についてですが
・IIS6.0の場合は、デフォルトではラビットフェール保護は停止されてますでしょうか。
(IIS8.0の場合は起動されておりました。)
・IIS8.0でラビットフェール保護が働いた場合のイベントIDなどはどうなりますでしょうか。
・上記のラビットフェール保護を停止することによる、
運用上のメリット・デメリットなどはございますでしょうか。
大変お忙しいとは存じますがどうぞよろしくお願いいたします。2014年9月16日 0:39
回答
-
>・IIS6.0の場合は、デフォルトではラビットフェール保護は停止されてますでしょうか。
たしかデフォルトで有効(ワーカープロセスのリサイクルが 1740 分ごとの設定のみ)だったかと思います。>・IIS8.0でラビットフェール保護が働いた場合のイベントIDなどはどうなりますでしょうか。
失敗時のログは原因によるので様々、場合によってはロギングすら失敗することも無くは無いと思われますが、概ね以下のログが記録されたかと思います。
いずれもイベントソースは W3SVC になるはずです。
・ハングアップ(Ping へ無応答) : イベント ID 1010
・リサイクル失敗(リサイクル処理のタイムアウト) : イベント ID 1013
・クラッシュか致命的なエラー : イベント ID 1005 / 1009 / 1011 / 1017 / 1039
・アプリケーションプールの起動失敗 : イベント ID 1002
このあたりのイベントは決まっているものなのですが、Technet Library でちょっと見てみました限りでは一覧がすぐには見つかりませんでしたので、記憶ベースの情報でご容赦ください。
なお、記録されるかどうかは以下の設定でも変わります。(URL は IIS7 ですが、IIS8 でも同様だったはずです)
http://technet.microsoft.com/ja-jp/library/cc753412.aspx>・上記のラビットフェール保護を停止することによる、
運用上のメリット・デメリットなどはございますでしょうか。
自動的にアプリケーションプールが起動するので自動的にサービスが再開してくれますが、これがダウン時間が短くなるからメリットだとも言えますし、自動的な再起動中にクラッシュすることで再起動とクラッシュのループに陥ることがあるのでデメリットだとも言えるかと。
あるいは、経過時間によるリサイクルであれば、予防的措置で障害発生率が下がるのでメリットだとも言えますし、メモリにあるキャッシュが消えるのでパフォーマンスが悪化してデメリットだとも言えるかと。
動作がメリットかデメリットかは、要件に応じて個別に考えることだと思いますので、基準となる軸が無いとなんとも難しいところかなと思います。
ざっくり一般的には、ダウン時に自動的にサービス再開してくれるので、要件にあわせた適切な設定値で設定しておくことが良いのではないかなと思います。MCITP(Database Developer/Database Administrator)
2014年9月16日 14:15
すべての返信
-
>・IIS6.0の場合は、デフォルトではラビットフェール保護は停止されてますでしょうか。
たしかデフォルトで有効(ワーカープロセスのリサイクルが 1740 分ごとの設定のみ)だったかと思います。>・IIS8.0でラビットフェール保護が働いた場合のイベントIDなどはどうなりますでしょうか。
失敗時のログは原因によるので様々、場合によってはロギングすら失敗することも無くは無いと思われますが、概ね以下のログが記録されたかと思います。
いずれもイベントソースは W3SVC になるはずです。
・ハングアップ(Ping へ無応答) : イベント ID 1010
・リサイクル失敗(リサイクル処理のタイムアウト) : イベント ID 1013
・クラッシュか致命的なエラー : イベント ID 1005 / 1009 / 1011 / 1017 / 1039
・アプリケーションプールの起動失敗 : イベント ID 1002
このあたりのイベントは決まっているものなのですが、Technet Library でちょっと見てみました限りでは一覧がすぐには見つかりませんでしたので、記憶ベースの情報でご容赦ください。
なお、記録されるかどうかは以下の設定でも変わります。(URL は IIS7 ですが、IIS8 でも同様だったはずです)
http://technet.microsoft.com/ja-jp/library/cc753412.aspx>・上記のラビットフェール保護を停止することによる、
運用上のメリット・デメリットなどはございますでしょうか。
自動的にアプリケーションプールが起動するので自動的にサービスが再開してくれますが、これがダウン時間が短くなるからメリットだとも言えますし、自動的な再起動中にクラッシュすることで再起動とクラッシュのループに陥ることがあるのでデメリットだとも言えるかと。
あるいは、経過時間によるリサイクルであれば、予防的措置で障害発生率が下がるのでメリットだとも言えますし、メモリにあるキャッシュが消えるのでパフォーマンスが悪化してデメリットだとも言えるかと。
動作がメリットかデメリットかは、要件に応じて個別に考えることだと思いますので、基準となる軸が無いとなんとも難しいところかなと思います。
ざっくり一般的には、ダウン時に自動的にサービス再開してくれるので、要件にあわせた適切な設定値で設定しておくことが良いのではないかなと思います。MCITP(Database Developer/Database Administrator)
2014年9月16日 14:15 -
なんとなく「ラピッドフェール保護」ではなくアプリケーションプールやワーカープロセスのリサイクルなどの話になっているように見えます。
※勘違いかもしれませんが
ラピッドフェール保護とは、予期せぬワーカープロセスのエラーが立て続けに発生した場合に、何らかの異常状態であるとみなし、被害の拡大を防ぐためにサービス(クライアントへのサービス提供)を停止する機能です。
たとえば確かデフォルトでは5分以内に5度という設定ですので、5分の間にワーカープロセスの異常終了が5回発生すると、異常事態とみなし、ワーカープロセスの再起動を中止し、サービスを停止します(クライアントには503が即座に返されるようになります)。
ラピッドフェール保護が有効ということは、立て続けにワーカープロセスがクラッシュしたりするとサービス提供を停止するということであり、無効にするということは、立て続けにクラッシュなどが発生しても、ワーカープロセスは再起動を繰り返すということです。
あとラピッドフェール保護は、イベントログにはっきり「ラピッドフェール保護が発動した旨」のログが残ったはずです(IDなどは思い出せませんが)。
- 回答の候補に設定 nagino - 引退エンジニア 2014年9月17日 6:39
2014年9月17日 6:02 -
フォローありがとうございます。
確かに、私がどこかで取り違えてしまっていますね、失礼しました。>・IIS6.0の場合は、デフォルトではラビットフェール保護は停止されてますでしょうか。
なちゃさんが記載の通りです。>・IIS8.0でラビットフェール保護が働いた場合のイベントIDなどはどうなりますでしょうか。
>・上記のラビットフェール保護を停止することによる、
イベントソース : Microsoft-Windows-WAS
イベント ID : 5009
で「アプリケーションプール'xxxx'を提供しているプロセスが突然終了しました。プロセスidは'xxxx'でした。」といったエラーが記録されます。
運用上のメリット・デメリットなどはございますでしょうか。
なちゃさんが記載の動作をメリットと捉えるか、デメリットと捉えるか、によるかと思います。
MCITP(Database Developer/Database Administrator)
2014年9月17日 6:39