トップ回答者
IIS7.5 Webサイトに対応するプロセス名について

質問
回答
-
Webサイトを追加する際、アプリケーションプールを選択したかと思います。IISではアプリケーションプールごとにプロセスを起動しています。
プロセス監視とは何をしたいのでしょうか?
というのも、IISは自身でアプリケーションプールの監視を行っています。デフォルトでは1740分ごとに再起動したりもします。外部からプロセスの生存確認をした場合、こういった設定に基づくプロセス再起動を誤検出するかと思います。
まずはアプリケーション プールのリサイクル設定を構成する (IIS 7)を参考に、IIS自身の監視機能にどういったものがあるかを調べることをお勧めします。
- 回答としてマーク 星 睦美 2011年7月6日 2:26
-
たとえば、監視ソフトなどでプロセスの死活監視を検討されていると仮定して、あまり現実的でないことの説明をします。
アプリケーションプールごとにプロセスが起動します。
プロセスが起動するタイミングは、初回アクセス時に初めてプロセスが動作します。
Windows Server が起動し、IISサービスが起動した段階では、プロセスは動作しておらずプロセスが存在しません。
また、アプリケーションプールは負荷が高まったりすると自動的にリサイクルが走ることがあり、
リサイクルされるとプロセスIDも変わってしまいます。単に総合テストなどの負荷テスト時に・・・という目的であれば、
http://technet.microsoft.com/ja-jp/library/ee886292.aspx
を参照すると良いかと思います。
Process Explorer http://technet.microsoft.com/ja-jp/sysinternals/bb896653
を使用してもいいかもしれませんね。- 回答としてマーク 星 睦美 2011年7月6日 2:26
-
Web サイトとプロセスの間に、二つ挟まっています。
Web Site ---> Web Application ---> Application Pool ---> w3wp.exe
http://blog.livedoor.jp/aspplus/archives/51599963.html
IIS のマネージャを使い、色々と変更しながら、C:\Windows\System32\inetsrv\config\applicationHost.config
がどのように変化するか観察すると、関連が見えてくるかも。
<configuration>
<system.applicationHost>
<applicationPools>
ここにアプリケーション プールの定義が並んでいる
<sites>
ここにサイトの定義が並んでいる。
ここにアプリケーションの定義が並んでいる。プールを定義する際に、
<processModel identityType="SpecificUser" userName="★" />
★印に特徴的な文字列 (というか Windows アカウント) を指定しておけば、w3wp.exe のユーザー名を見てすぐに「この w3wp.exe はあのサイト (アプリ) で使っているプロセスだ!」と言えるようになります。
プロセス id から、サイト名 (アプリケーション名) を割り出す方法、もしご存じなら私にも教えてください。
- 回答としてマーク 星 睦美 2011年7月6日 2:26
すべての返信
-
Webサイトを追加する際、アプリケーションプールを選択したかと思います。IISではアプリケーションプールごとにプロセスを起動しています。
プロセス監視とは何をしたいのでしょうか?
というのも、IISは自身でアプリケーションプールの監視を行っています。デフォルトでは1740分ごとに再起動したりもします。外部からプロセスの生存確認をした場合、こういった設定に基づくプロセス再起動を誤検出するかと思います。
まずはアプリケーション プールのリサイクル設定を構成する (IIS 7)を参考に、IIS自身の監視機能にどういったものがあるかを調べることをお勧めします。
- 回答としてマーク 星 睦美 2011年7月6日 2:26
-
たとえば、監視ソフトなどでプロセスの死活監視を検討されていると仮定して、あまり現実的でないことの説明をします。
アプリケーションプールごとにプロセスが起動します。
プロセスが起動するタイミングは、初回アクセス時に初めてプロセスが動作します。
Windows Server が起動し、IISサービスが起動した段階では、プロセスは動作しておらずプロセスが存在しません。
また、アプリケーションプールは負荷が高まったりすると自動的にリサイクルが走ることがあり、
リサイクルされるとプロセスIDも変わってしまいます。単に総合テストなどの負荷テスト時に・・・という目的であれば、
http://technet.microsoft.com/ja-jp/library/ee886292.aspx
を参照すると良いかと思います。
Process Explorer http://technet.microsoft.com/ja-jp/sysinternals/bb896653
を使用してもいいかもしれませんね。- 回答としてマーク 星 睦美 2011年7月6日 2:26
-
Web サイトとプロセスの間に、二つ挟まっています。
Web Site ---> Web Application ---> Application Pool ---> w3wp.exe
http://blog.livedoor.jp/aspplus/archives/51599963.html
IIS のマネージャを使い、色々と変更しながら、C:\Windows\System32\inetsrv\config\applicationHost.config
がどのように変化するか観察すると、関連が見えてくるかも。
<configuration>
<system.applicationHost>
<applicationPools>
ここにアプリケーション プールの定義が並んでいる
<sites>
ここにサイトの定義が並んでいる。
ここにアプリケーションの定義が並んでいる。プールを定義する際に、
<processModel identityType="SpecificUser" userName="★" />
★印に特徴的な文字列 (というか Windows アカウント) を指定しておけば、w3wp.exe のユーザー名を見てすぐに「この w3wp.exe はあのサイト (アプリ) で使っているプロセスだ!」と言えるようになります。
プロセス id から、サイト名 (アプリケーション名) を割り出す方法、もしご存じなら私にも教えてください。
- 回答としてマーク 星 睦美 2011年7月6日 2:26
-
Web Application(Web SiteもApplicationの1つとして) : Application Pool = n : 1
Application Pool : Worker Process(w3wp.exe) = 1 : nなのでプロセスIDからは動作させているApplication Poolまでしか追跡できないはずです。それ以上を特定したいのなら、独立したApplication Poolを定義することになるでしょうか。
その上で、
コマンドでWorker Processの一覧とそのプロセス上で動作しているApplication Poolまでは表示できます。WMIでもできます。
wmic /namespace:\\root\WebAdministration path WorkerProcess
とか。