2016-12-13 15 views
0

私は現在、IIS(10 +)で実行されているマイクロソフトのサービスごとに数千ものAppPools、つまりワーカープロセスを持つアーキテクチャの実現可能性を調査中です。 (いくつかのオプションの1つです)IISは何千ものAppPools /ワーカープロセスを処理できますか?

私は各ワーカープロセスのオーバーヘッドを理解しています。現在、私の見積もりは、各作業者が約20-30MBになることです。サーバーのリソースはあまり問題にならないはずです.32〜64GBのRAMを備えたサーバーをプロビジョニングする可能性が高いからです。これに加えて、すべてのワーカーが常にアクティブになるわけではないので、AppPoolsがアイドル状態のときにヘッドルームを獲得する必要があります。

私の質問:IISはこの多くのAppPools/Workerプロセスを処理できますか?

私は、十分なリソースを与えてはならない理由は見当たりませんが、何らかの簡単な検索の後にドキュメントを見つけることができなかったのです。

答えて

0

私はちょっとしたテストをしたので、私自身の質問に答えを加えます。

サーバー

  • のIntel Xeon - X5550
  • 32ギガバイトのRAM
  • のWindows Server 2012 R2

アプリケーション

作成したベアボーンWebAPIの唯一ASP.N 1つのコントローラとアクションでアプリケーションを実行できます。 IISにインストールすると、これは観測されるメモリフットプリントです。

  • メモリ(アイドル)=〜5172 K
  • メモリ(ランニング)=〜26 000 K

準備

私が(すみません共有することはできませんいくつかのPowerShellスクリプトを作成しましたクローズドソース配布スクリプトを利用する場合):

  • Create-Uni
  • 起動を共有可能なリソースを防ぐために、各アプリケーションのためのqueのフォルダ - Web要求
  • クリーンアップを行います - すべてのアプリケーション、プールやフォルダ
  • リサイクルを削除 - アプリケーションをアンロードし、状態
をIdleに戻ってそれを設定し、以下は

テスト

は、パフォーマンスモニタ

から観察私の結果です

私は1000を一度に実行することはできませんでした。

  • すべての電話が同時に起動するように1000番に電話をかけようとすると、聞こえるほど簡単ではありません。
  • ASP.Net一時インターネットファイルがC:\にあり、空き領域がなくなった
  • メモリがページングされていたため、動作が遅くなり始めました。

結論

IISが本当にプロセスの数に制限はありませんようです。中核となる制約は、マシン上のリソースです。

興味深いことに、すべてのアプリケーションがシミュレーションを実行している可能性は低いので、IISがmemをプロビジョニングするという事実を利用できます。

関連する問題