多数のファイルをサーバ上にコピー後、何らかのタイミングで、Windows の動作が非常に遅くなります。

この仕組みと回避策を教えてください。

 【状況】
  (1) OS: Windows Server 2003
  (2) ファイル数: 30~40万程度(100KB 以下の TIFF 画像ファイル)
  (3) ファイル格納方法: 画像フォルダ直下に30~40万のサブフォルダがあり、その下に格納
  (4) 上記画像フォルダにアクセスせずとも、その上のフォルダにアクセスするだけでも
    現象が発生する
  (5) 現象は1時間程度で収まる
  (6) Explorer が CPU を使い切っているのが原因
  (7) コピーしたファイルの使用は非常に稀
  (8) ディスク容量:250GB、空き容量:170GB
  (9) USB-HDD などに格納し、必要なときにだけ接続するのはセキュリティ上最終手段と考えている

 【質問】
  (1) Windows が何をやっているのかを教えてください m(_ _)m
  (2) 何がきっかけでおきるのかを教えてください m(_ _)m
  (3) Windows にこの行為を止めさせる方法を教えてください m(_ _)m
  (4) よりよい回避方法があれば教えてください m(_ _)m

お分かりになられる方がおられましたらよろしくお願い致します。

回答の条件
  • 1人2回まで
  • 登録:2007/02/10 10:19:11
  • 終了:2007/02/17 10:20:10

回答(2件)

id:arcana No.1

arcana回答回数120ベストアンサー獲得回数102007/02/10 12:54:52

ポイント35pt

全部の質問には回答できませんが、わかる範囲だけでご容赦ください。

【回答】

(2)Explorer がフォルダをキャッシュするタイミングであると思います。

(3)レジストリの変更などで対応可能という話もありますが、実際に行った人の話では、変わらない。。。という意見が大多数です。

(4)ファイラとして Explorer 以外を選択してみてはどうでしょうか?

http://www.google.co.jp/search?num=100&hl=ja&lr=lang_ja&...

もしくは、ファイルのコピー目的であれば、バックアップツール(ファイルコピー系)なども有用と思います。

こちらはシェアですが、フリーのものもあるかと思います。

http://www.kish-d.com/index-j.html

id:hazratt

ご回答ありがとうございます。

(2) なるほど、ということは先読みしてサブフォルダも見に行っているということですね。

(3) そういうことができそうなんですね。できれば、具体的なキーと値あたりを教えて

  いただけるとありがたいです。

(4) サーバとして使うのと、どうしても使い慣れた Explorer を使ってしまうと

  思いますので、別のファイラをインストールしても使われない可能性が高いと思います。

  そのとき、現象が発生しては意味がないので(^^;

 CopyToというツールは以前探していた目的にぴったりのツールです。

 今回はコピー後についてですので直接関係はないのですが、

 よい参考になります。ありがとうございます。

2007/02/10 13:56:23
id:kurukuru-neko No.2

kurukuru-neko回答回数1844ベストアンサー獲得回数1552007/02/10 14:54:17

ポイント35pt

(4) 多少は改善する

多量のディレクトリーがある

 →フォルダービュー,プレビュー表示情報を

  自動作成する。

  結果多量のリソース消費(先読み、プレビュー作成)

explore設定の変更

  1.フォルダービューを表示しない。 

   (リストBOXの作成に時間がかかる)

  2.表示を一覧にする。 

3.親フォルダーの表示方法を変更

   プロパティー→カスタマイズ→ドキュメントの種類を

   ドキュメント(すべての・・・)に変更

4.表示方法を全フォルダーに適用する

ツール→フォルダーオプション→表示→全てのフォルダーに適用

PS:

ディレクトリー構造は問題がありそうです。

2階層以上に分割した方がよいと思います。


  

id:hazratt

ご回答ありがとうございます。

# 返事が遅くなり申し訳ありません

いろいろと工夫の余地がありそうですね。

私もディレクトリ構造が問題ではないかと思っていますが、

果たして2階層以上に分割したところでどれだけの改善が

見込めるのか分かりません。先読みの結果であるとすれば

結局同じ数だけの読み込みが発生すると思いますので。

教えていただいた方法を試して見ようと思います。

ありがとうございました。

2007/02/13 01:16:49
  • id:b-wind
    > 30~40万のサブフォルダ
    詳しくは分からないけど原因はこれじゃないのかなぁ。
    階層を深くして一つのディレクトリ配下のサブフォルダ・ファイルの数を減らしたほうがいいような気がする。
  • id:hazratt
    コメントありがとうございます。
    原因はおそらくご指摘の通りと思います。
    階層を増やしてやってみたいところではありますが、
    アクセスするたびに、最大40万フォルダが存在するフォルダを
    開かないといけないので、これは大変です。
    move コマンドでバッチ作るのもありですが、ファイルの
    所在地が変わる問題もあり、それの修正も絡むので迷いどころです(^^;
  • id:arcana
    (3)のご要望ですが、
    http://penguin.nakayosi.jp/windows/win2000.html
    の NTFS パフォーマンス向上をご参照ください。
    (2)の補足ですが、サブフォルダの情報(中身ではなく、更新日時など)と思われます。
    以上、ご参考までに。
  • id:hazratt
    arcana さん、情報ありがとうございます。
    ご提示いただいたURLを拝見しました。実際に試して見ました。
    かなりよさそうな方法だと思います。

    サーバ上のプログラムの動作に問題がないようなら
    積極的に採用したいと思いました。検証・検討してみたいと思います。
    ありがとうございました。
  • id:hazratt
    サーバ上で試す前にXPでやってみました。
    2~3万ファイルくらいでしたが、体感的にはかなり早くなった
    ように感じました。ただ、このXPに対し、30万ファイルの入った
    USB-HDDを接続して、そこにアクセスすると今回問題となっている
    パフォーマンスの低下が見られました。なので、相談の結果、
    サーバへの適用は見合わせることになってしまいました。結局、
    USB-HDDを買って、そこに保存という形に落ち着きました。

    今になって考えると、原因は

    1.USB-HDDは設定の影響範囲外
    2.または、USB-HDD接続後、一度再起動しなくてはならなかった

    などが考えられますが、お客さん先でしかも時間がなかったので
    検証できずじまいでした。

    今度、じっくりと検証してみたいと思います。
    ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません