今日のお仕事

パソコン設定・修理、ウイルス駆除、ファイル救出、ネットワーク設定、SEO対策、ホームページ制作、防犯カメラ、ダビングやってます

全体表示

[ リスト ]

IRPStackSizeの作成で、しばらくうまくいっていた、64bit版Windows 7 Ultimateの共有フォルダが、再度アクセスできないとの連絡で、休出です。

祝日で、社員がいなかったので、全PCを起動し、本当にエラーが起こるかを確認しました。

まずは、サーバのコマンドプロンプトで、接続しているパソコンの確認です。
------------------------------
net sessions
→一覧にエントリが存在しません。
------------------------------

誰もつないでいません。

そして、各PCから、1台ずつ、共有フォルダを開きながら、『net sessions』で確認です。
Mac OS Xのパソコン、Windows XPのパソコン、Windows 2000のパソコン、Windows 7のパソコン・・・。
共有フォルダの中にある、ExcelやWordのファイルも開いてみました。

7台目のパソコンからアクセスをしようとした時、共有フォルダにアクセスできなくなりました。

サーバのシステムイベントログを見ると、エラーが出ています。
-------------------------------
非ページ プール割り当ての制限に達したため、サーバーはシステムの非ページ プールから割り当てることができませんでした。
-------------------------------

『net config server』で確認すると、Windows 7 Ultimateは、20台のPCからのアクセスが可能と出ますが、1/3のアクセスで止まってしまいました。

とりあえず、『マイコンピュータ』右クリック→『管理』で、「サービス」一覧の中から、共有フォルダを管理している「Server」を選び、再起動しました。

不正アクセスを防ぐため、Windows VistaからSMBのアクセスに制限をかけたとMicrosoftの技術ページに書いてあり、不具合が出た場合の対処法も掲載されています。

Windows VistaやWindows 7のSMBトラブルで困っている方が多いようで、いろいろなサイトにいろいろなことが書いてあり、本当はどうすればいいのか迷いますが、下記をやれば大丈夫です。

--------------------------------
regeditで、レジストリエディタを起動。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters

に移動し、4つの値を下記のように修正。
値が無い場合は、DWORD値(32ビット)で値を追加する。
=====
IRPStackSize:0x00000032(50) 無い場合デフォルトは、10進数の15。お奨めは10進数の20もしくは50。33〜38はエラー可能性あり。I/O 要求パケット (IRP) のスタック ロケーション数。

Size:0x00000003(3) 1:ローカルアプリケーション用にサーバを最適化、2:ローカルとリモートに配分、3:ネットワークの処理用に最適化。

MaxMpxCt:0x000000ff(255) 10〜255まで。サーバーをサポートしている要求の最大数。

MaxWorkItems:0x00000400(1024) 少なくとも MaxMpxCtの値の4倍にする。デフォルトで64 最大で1,024。
=====

この4つの修正でOKなのですが、お客様の事務所は、PC台数が多いので、共有フォルダを閉じた後のセッションを自動で切断するまでの時間を、15分→10分と短くした。

Autodisconnect:0x0000000a(10) アイドルセッション時、自動切断されるまでの分数。クライアントがフォルダ開いてる場合は切断されない。デフォルトは、15分。0x0000000f(15)。

ちなみに、SMB要求の最大数は、次の2つの値のうちの小さい方と同じなので、あまりアクセスをさせたくないPCについては、クライアント側(接続元のPC)の設定変更もありです。

 ・サーバーの MaxMpxCt エントリの値
 ・クライアント コンピュータの MaxCmds エントリの値

  Windows Vista では、MaxCmds エントリがデフォルトで 50 に設定されています。この値を 65,535 よりも大きい値に設定することはできません。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanworkstation に、MaxCmds はある。
--------------------------------

レジストリ修正→サーバ再起動後、18台のPCから共有フォルダにアクセスし、ファイルを開きましたが、エラーも起こらず、快適に動きました。

上記レジストリを変更しても、物理メモリの使用量は、変わりませんでした。
変更前、変更後とも、使用量は1.3GB程度と、約3.5GB余っていました。

営業用のUMPCがあと5台あるらしいので、同時に全PCからアクセスすると20台を超えますが、まずそんなことはしないそうなので、障害対応は完了となりました。

『net sessions』で確認すると、Windows 7からのSMBアクセスは、セッションを多く使っていた(平均3〜4、7もあった?)ので、ネットワーク内に、Vistaや7が多い場合は、共有フォルダサーバの設定を変えた方がいいです。

まあ、接続するPC台数が多い場合は、Server 2008でCALを追加購入したり、LinuxのSMBを使ったりした方がいいのですが・・・。

とりあえず、Vistaや7を、共有フォルダ用のファイルサーバにする場合は、
 IRPStackSize、Size、MaxMpxCt、MaxWorkItems
の4つの値を変更しましょう。

そして、万が一、共有フォルダにアクセスできなくなった場合は、サービスで、Serverを探し、再起動(停止→起動でも可)すれば、OKです。
パソコンを再起動する必要はありません。

セッションを使いすぎのPCは、クライアント側のMaxCmdsを変更してもいいですし、サーバ上で、下記のように、接続を切ってしまってもいいです。

 net session /delete \\computername   ダメPCのセション切断

この記事に

閉じる コメント(9)

顔アイコン

ゼロックス複合機のSMBスキャンサーバー予期せぬエラーの多発で調べていてIRPStackSizeを変更すると改善といった情報はいくつか見かけたのですが、当方なかなか解決できません。上記記事を参考にさせていただきたいと思います。
ありがとうございます。 削除

2011/5/27(金) 午前 10:45 [ M&M ] 返信する

顔アイコン

サーバーを記載通りに設定したところ、問題が解決しました。

windows7をファイルサーバーにして共有していたところ、共有フォルダが認識できなくなる問題が多発。

原因がわからず途方にくれていたところだったので、大変助かりました。ありがとうございます!! 削除

2011/12/2(金) 午後 3:46 [ magical ] 返信する

顔アイコン

当方Windows7 Home Premiumをファイルサーバーにしていまして、
サーバーを起動して時間が経つにつれてWindows XPのPCからだけ
共有フォルダへアスセスできなくなっていたのですが、
サーバーを記載どおりに設定しましたら見事解決しました。
素晴らしいです。どうもありがとうございました。 削除

2012/11/11(日) 午前 0:25 [ ももぽん ] 返信する

顔アイコン

みなさん、よかったです。

2012/11/13(火) 午前 11:20 [ アイ・コンピュータ ] 返信する

顔アイコン

大変助かりました!
ありがとうございます. 削除

2013/5/13(月) 午後 3:35 [ kensho ] 返信する

顔アイコン

よかったです!

2013/5/17(金) 午後 7:48 [ アイ・コンピュータ ] 返信する

顔アイコン

エンドユーザーですが各項の意味が簡潔にわかり、大変参考になりました。 ありがとうございます。 削除

2013/9/4(水) 午前 1:32 [ tanpa ] 返信する

顔アイコン

よかったです。

2013/9/6(金) 午前 8:36 [ アイ・コンピュータ ] 返信する

顔アイコン

ricohの複合機でスキャンしたものがPCに飛ばず悩んでおりました。
この記事+複合機のsmbポートを445にすることで解決しました!
ありがとうございました。 削除

2016/12/16(金) 午後 2:21 [ のーねーむ ] 返信する

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


みんなの更新記事