web-dev-qa-db-ja.com

IRPStackSizeとWindowsからのWindows7共有へのアクセスXPクライアント

新しいWindows7ワークステーション(古いWindows 7ワークステーションを置き換える)を受け取り、Windows XPマシンからファイル共有にアクセスするときにエラーが発生し始めました。

行き来しているように見えるさまざまなエラーが発生します(ある時点では、何時間も正常に動作します)。 1つは:

このコマンドを処理するのに十分なストレージがありません

また、共有から多くのファイルにアクセスしようとするアプリケーションでファイルを開くのにランダムな失敗が見られます。

マイクロソフトは、このテーマに関する不可解なナレッジベースの記事を公開しており、なぜそうする必要があるのか​​についての説明なしに、問題を修正するためにIRPStackSizeを増やすことを提案しています。

ワークステーションとクライアントの両方でIRPStackSizeを増やすとXPマシンで問題が解決するようです。

しかし、なぜこれを行う必要があるのですか?なぜ1台のWin7マシンでこの問題が発生し、別のマシンでは発生しないのでしょうか。それらはすべて同じドメイン上にあるため、グループポリシーは同じ設定をそれらにプッシュダウンしますが、その一部は手動で確認しました。適切な値を知るにはどうすればよいですか?または、最大50に設定する必要がありますか?

5
djs

これは私をひっくり返したものです:

「また、共有から多くのファイルにアクセスしようとするアプリケーションでファイルを開くのにランダムな失敗が見られます。」

Windowsは、階層化されたI/Oモデルを使用します。このモデルでは、ドライバーが相互に接続し、基盤となるドライバーのサービスを利用して作業を実行します。互いのサービスを利用するドライバーのレイヤーは、通常、「ドライバースタック」と呼ばれます。

特定のスタックに含まれるフィルターが多すぎるため(アンチウイルス、ベースフィルタリングエンジン、NTFSなどのレイヤーを通過するリクエストの数)、デフォルトのIRPStackSizeは十分に大きくありません。デフォルトを増やすと、すべてのフィルターが独自のI/Oスタックの場所を持つことができ、誰もが満足します。これは一般的なWindowsの問題ではなく、システム内の特定のドライバーの制限にすぎません。

頻繁に使用するファイル共有をファイルサーバーでホストすることを検討してから、2008 R2チューニングガイド、特にファイルサーバーのパフォーマンスのチューニングに関する部分を読んでください。 http://msdn.Microsoft.com/en-us/windows/ハードウェア/ gg463392

2
Ryan Ries