none
IIS7.5 Webサイトに対応するプロセス名について RRS feed

  • 質問

  • WindowsServer2008R2SP1の

    IIS7.5に複数のWebサイトを構築しましたが

    どのプロセスがどのWebサイトのものなのか分かりません。

    (プロセス監視をしたい)

    Webサイトごとのプロセスは存在するのでしょうか?教えてください。 

    2011年6月16日 15:02

回答

  • Webサイトを追加する際、アプリケーションプールを選択したかと思います。IISではアプリケーションプールごとにプロセスを起動しています。

    プロセス監視とは何をしたいのでしょうか?

    というのも、IISは自身でアプリケーションプールの監視を行っています。デフォルトでは1740分ごとに再起動したりもします。外部からプロセスの生存確認をした場合、こういった設定に基づくプロセス再起動を誤検出するかと思います。

    まずはアプリケーション プールのリサイクル設定を構成する (IIS 7)を参考に、IIS自身の監視機能にどういったものがあるかを調べることをお勧めします。

    • 回答としてマーク 星 睦美 2011年7月6日 2:26
    2011年6月17日 0:37
  • たとえば、監視ソフトなどでプロセスの死活監視を検討されていると仮定して、あまり現実的でないことの説明をします。

    アプリケーションプールごとにプロセスが起動します。
    プロセスが起動するタイミングは、初回アクセス時に初めてプロセスが動作します。
    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
    2011年6月17日 14:32
  • 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
    2011年6月20日 14:18

すべての返信

  • Webサイトを追加する際、アプリケーションプールを選択したかと思います。IISではアプリケーションプールごとにプロセスを起動しています。

    プロセス監視とは何をしたいのでしょうか?

    というのも、IISは自身でアプリケーションプールの監視を行っています。デフォルトでは1740分ごとに再起動したりもします。外部からプロセスの生存確認をした場合、こういった設定に基づくプロセス再起動を誤検出するかと思います。

    まずはアプリケーション プールのリサイクル設定を構成する (IIS 7)を参考に、IIS自身の監視機能にどういったものがあるかを調べることをお勧めします。

    • 回答としてマーク 星 睦美 2011年7月6日 2:26
    2011年6月17日 0:37
  • たとえば、監視ソフトなどでプロセスの死活監視を検討されていると仮定して、あまり現実的でないことの説明をします。

    アプリケーションプールごとにプロセスが起動します。
    プロセスが起動するタイミングは、初回アクセス時に初めてプロセスが動作します。
    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
    2011年6月17日 14:32
  • 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
    2011年6月20日 14:18
  • Web Application(Web SiteもApplicationの1つとして) : Application Pool = n : 1
    Application Pool : Worker Process(w3wp.exe) = 1 : n

    なのでプロセスIDからは動作させているApplication Poolまでしか追跡できないはずです。それ以上を特定したいのなら、独立したApplication Poolを定義することになるでしょうか。

    その上で、

    Appcmd.exe list wp

    コマンドでWorker Processの一覧とそのプロセス上で動作しているApplication Poolまでは表示できます。WMIでもできます。

    wmic /namespace:\\root\WebAdministration path WorkerProcess

    とか。

    2011年6月21日 1:19
  • 質問者です。

    IIS7.5のプロセス監視はなかなか難しいということですね。。

    みなさんからの回答を参考に、いろいろ検討したいと思います。

    ありがとうございました。

    2011年6月24日 5:23