7

私は、(外部ハードウェアを介して) 負荷分散された従来の ASP クラシック ソリューションを使用しており、ホーム ディレクトリが UNC パスである IIS サイトを持っています。現在、このセットアップには次の問題があると言われています。

  1. UNC パスをホーム ディレクトリとして使用する場合、IIS のどこかに「インデックス」があり、特定の種類のファイルを特定の量まで「キャッシュ」し、制限 (既定では 50) に達すると、後続の要求はキャッシュにないページは 404 を返します。
  2. UNC パスをホーム ディレクトリとして使用している場合、IIS サイトを開始すると、前述の「キャッシュ」がいっぱいになり始めます。これは、キャッシュがいっぱいになるまでサイト IIS を停止させます。つまり、巨大なサイト (15,000 の .asp ファイル) をIIS サイトの起動後、最大 30 分。
  3. UNC パスをホーム ディレクトリとして使用している場合、サイトに対して一定数を超える同時要求が行われると、Windows は「サーバーごとのネットワーク BIOS コマンドの制限」に達し、制限を超えるすべての要求は IIS まで待機する必要があります」サーバーへのセッションを閉じます。制限は 100 ファイルであり、構成できないと言われています。

さて、これはすべて少し奇妙に聞こえます。新しい Windows 2003 サーバーを既定の設定でセットアップし、それを使用して 15,000 の .asp ファイルを含む ASP クラシック アプリケーションをホストし、サーバー上の共有を IIS サイトのホーム ディレクトリとして使用すると、実際にこれらの問題が発生しますか? ? もしそうなら、アーキテクチャを変更せずにそれらに対抗する方法はありますか?

(明確にするために、「負荷分散」が重要な唯一の理由は、負荷分散がファイルがサーバー上の共有にある理由であるということです。負荷分散が必要ない場合、ファイルはローカル ディスクにある可能性があります。)

4

3 に答える 3

5

はい、可能ですが、問題が発生する可能性があります。

ASP.NET は、ASPX、ASCX、およびその他のコンテンツ ページをアセンブリにコンパイルするときに、それらの間の依存関係を監視するために多くの FileSystemWatcher を作成し、ファイルが変更されたときに再コンパイルできるようにします。これらは NetBIOS リソースを消費します。

さらに、File.Exists または Directory.Exists 呼び出し、またはサイトのサービス パスに対するその他の種類の IO を実行するたびに、NetBIOS 制限に対する要求も増加します。

レジストリを使用して、NetBIOS の制限をデフォルトよりもある程度高く設定することができます。

ディレクトリとファイルが比較的少ない小規模なサイトの場合、UNC 共有から非常にうまく実行できます。これは、ASP.NET がコンパイル済みアセンブリからの起動後も引き続き実行されるためです。ただし、追加するディレクトリとファイルが増えるほど、問題が発生する可能性が高くなります。

巨大なサイト (数百のディレクトリと ASPX/ASCX ファイル) を実行しようとしましたが、NetBIOS の制限に達するのに十分な数の URL がアクセスされるまで数分間正常に実行され、その後のすべてのページ ビューで例外が発生しました。最終的には、robocopy パブリッシング ソリューションの使用を余儀なくされました。

最後に、サイトが十分に小さく、NetBIOS 設定が効果的に動作するのに十分高いかどうかをテストする必要があります。テスト サイトでスパイダーを使用して、コンパイルまたはアクセスできるすべてのものが少なくとも 1 回であることを確認できるようにすることをお勧めします。

于 2008-12-09T22:48:30.520 に答える
2

IIS と UNC の間の相互作用に関するあなたの直接の質問についてはよくわかりませんが、ビジーなサイト (負荷分散が必要なほどビジーなサイト) では、ファイル共有以外のものを検討することをお勧めします。

ネットワーク (つまり、ファイル共有) を介して IIS によって読み込まれた ASP は、パフォーマンスに悪影響 (遅延) を被ります。

robocopy のようなものを使用して、負荷分散されたすべてのサーバーを中央のマスターと同期させることをお勧めします。つまり、1 つのマスター サーバー (または 1 つのマスターの場所) にデプロイしてから、ロード バランサーのプール内の各スレーブにファイルをロボコピーします。

これにより、説明した奇妙なUNCの問題が解消されるだけでなく、パフォーマンスが大幅に向上します(aspページをロードする際のネットワークヒットが解消されます)。これを行うと、パフォーマンスが大幅に向上することが期待できます。

于 2008-09-23T20:36:36.767 に答える
1

回答 3 については、ネットワーク BIOS コマンドの制限を変更できます。その非常に簡単なレジストリ編集修正: http://support.microsoft.com/kb/810886/en-us

私は自分でその特定の問題に遭遇しました。

于 2008-09-23T20:34:02.483 に答える