アプリケーションプール 【application pool】
概要
アプリケーションプール(application pool)とは、米マイクロソフト(Microsoft)社のWebサーバソフトウェア、Internet Information Services(IIS)の機能の一つで、アプリケーションをグループ分けしてそれぞれ独立に実行する仕組み。Webサーバ上では閲覧者からの要求に応じて動的にプログラムを実行するアプリケーションを構成することができるが、サーバ本体のプログラム(プロセス)の内部でこれを実行すると、不具合のあるアプリケーションが他のアプリケーションやサーバ自体を巻き込んで停止してしまうことがある。
これを避けるため、各アプリケーションをサーバ本体とは別のプロセスとして実行する「プロセス分離」が行われる。アプリケーションはサーバから起動される「ワーカープロセス」(IISの場合はw3wp.exe)によって実行され、何か起きても影響はプロセス内に限定される。
アプリケーションプールは同じワーカープロセスを共有するアプリケーションのグループで、IIS上に作成されたアプリケーションはいずれかのプールに所属する。ワーカープロセスはプール単位で起動され、同じグループのアプリケーション間で使い回される。
IISの初期状態では「DefaultAppPool」というプールが存在し、何も指定しなければアプリケーションはこのプールに所属する。他のアプリケーションから独立させたいアプリケーションがある場合は新たにプールを作成し、そこに所属を変更すればよい。
一つのプールが複数のワーカープロセスを起動する設定にすることもでき、これを「Webガーデン」という。プール内のアプリケーションが複数のプロセスで並列に処理されるため、複数のプロセッサやプロセッサコアを搭載したサーバの性能をフル活用することができる。
(2021.12.16更新)