プロが教えるわが家の防犯対策術!

(サーバ・UNIX)は、ひとつのディレクトリに何ファイルまでおいても良いですか?

私は、Windowsしか使ったことが無いので、感覚というものが良く分からないのですが、
通常、Windowsの場合、1つのディレクトリに1000ファイル以上置くと動作が重くなります。
10000を超えるとパソコンがフリーズしてしまいます(Win98)。
そのため、1ディレクトリには1000程度にするよう、心がけています。

しかし、サーバの場合は、大抵、UNIXを使っているため、ファイル管理が非常に優秀だと聞きます。
ということは、1つのディレクトリにいくら置いても問題ないということでしょうか?

レンタルサーバの空き容量がまだ、1900Mもあるため、CGIの練習も兼ねて、
時間列で、画像ファイル(ライブカメラ)をどんどん記録することを考えています。
たくさんのディレクトリを作って、時間や日付で分けることも考えたのですが、
ディレクトリ分けしても、しなくても呼び出し速度が殆ど換わらないのであれば、
1つのディレクトリにおきたいと思っています。
ファイル情報の取得など、1ディレクトリですととても簡単にできるので・・・

そして、容量が近くなったら、古いものから順番に削除していく。
or
日付の古いものを削除していく。

なお、転送容量にはは問題はなかったのですが、サーバに過度の負担をかけることは禁止でした。

ちなみに、呼び出す時は、そのディレクトリ中から画像を30枚ほどランダムに選んで表示する予定です。
画像のサイズは極小の2KB程度です。

以上の作成を考えております。そこで、長くなりましたが、ファイル管理についてご返答、
何卒、宜しくお願い致します。

A 回答 (4件)

>ひとつのディレクトリに何ファイルまでおいても良いですか?


>将来、1ディレクトリ、200万ファイルなど尋常でない数に膨れ上がっても問題ないですかね?


ディレクトリ単位に分ければ問題ない、と思われているようですが、
ファイルシステム(パーティション)で考えてみると、

(1)ファイルシステムに空き容量が無くなれば、それ以上ファイルは増やせない。
(2)ファイルシステムに空き容量があっても、inode数を使い尽くせば、それ以上ファイルは増やせない。
(3)ファイルシステムに、ユーザ毎にQuota容量制限が設定されていれば、それ以上ファイルは増やせない。

など制限があります。
ちなみに(2)のinode数を調べてみると、

# df -i

Filesystem  Inodes   IUsed   IFree  IUse%  Mounted on
/dev/hda5   1001560  39    1001521  1%   /home

つまり、/home 配下には、約100万ファイルしか作成できない、という事です。

(mke2fs・tune2fs等でファイルシステムを作成するときにinode数を指定することはできます)
    • good
    • 0

> ひとつのディレクトリに何ファイルまでおいても良いですか?



仕様的に可、不可という意味だと、実用上無限と考えて問題ないと思います。
FAT/FAT32の場合、ルートディレクトリにおけるファイル数には制限がありますが、サブディレクトリ内であれば事実上無制限のはずです。
UNIX系は詳しくありませんが、サブディレクトリ内であれば1万やそこらの数は平気で管理します。私は会社のメールサーバ(PC-Unix)にメールをため込んでますが、1メール1ファイル形式なのでメール・ディレクトリ内に常時1~2万ファイルくらいはいつもため込んでます。(古いメールは時々1つのファイルに固めて別途保存する)
なので、別にたくさんファイルをおいておいても実用上あまり問題は起きません。
ただ、性能を要求される場合、1ディレクトリ内にあまりたくさんのファイルがあるとやはり目的のファイルを探し出す検索機能は落ちるようです。そのため、squidではキャッシュディレクトリ内のキャッシュファイル数を設定ファイルで調整できるようになっています。

ちなみに、この(↓)の問題ですが……
> 通常、Windowsの場合、1つのディレクトリに1000ファイル以上置くと動作が重くなります。

これってエクスプローラで一覧を表示するときの話ですよね? これはファイルシステムがどうのこうのいう以前に、Windowsのエクスプローラはファイルの一覧を表示する際、ファイルの一部を読み込んでアイコンなどの情報を取り出そうとします。ですから、多数のファイルがあるとリソースを圧迫されて動作が遅くなるのでしょう。
試したことがあるわけではないですが、DOSプロンプトからファイル管理を行えば、動作遅延は必要最小限ですむと思いますよ?
    • good
    • 0

OS というよりはファイルシステムの話ですね.


Windows98 だと FAT (あるいは FAT32) ですが, こいつはディレクトリ内のファイルをさがすのに 1個ずつ順に調べるしかできなかったかと思います.
それに対し Windows2000 などの NTFS や UNIX系の場合にはもっと賢い検索方法が使えるようになっています.
とはいえ, さすがに 1個のディレクトリにたくさんファイルを入れすぎると時間がかかるようになりますが.
    • good
    • 0

特に問題にならないと思います。


そもそもWin98はネットワーク共有する事を考えられていないために
継ぎ当て的につけられている機能なので、上記のような問題が
発生する物と考えられます。
Windows2000やXPでは上記のような問題は発生しないと思います。
(ネットワーク共有も考えられて作られているため)
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
ということは、将来、1ディレクトリ、200万ファイルなど尋常でない数に膨れ上がっても問題ないですかね?
Winユーザーの私からは、ちょっと、信じがたいのですが・・・
また、可能であれば、フォルダー分けしなくてもいいのでとても助かります。

お礼日時:2006/02/11 18:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!