2017-04-18 6 views
0

質問が重複しているように見える場合でも、この質問は一意だと思います。何か制限があるかどうかは問いませんが、それはApacheのコンテキストでのパフォーマンスの欠点だけです。または一般的なUNIXファイルシステム。1つのディレクトリに多数のファイルがあると、Apacheでの読み込み時間が長くなりますか?

私は、Apacheサーバ

http://example.com/media/example.jpg 

からファイルを要求した場合、同じディレクトリにありますどのように多くのファイルが「メディア」は関係ない?と言うことができますか

私が尋ねる理由は、PHPアプリケーションがその場で画像を生成するということです。

作成されると、ModRewriteのためにPHPスクリプトがトリガーするのと同じ場所に配置されます。ファイルが存在する場合、ApacheはPHP全体の実行をスキップし、代わりに静的イメージを直接提供します。そのようにしたい場合は、何らかのゲートウェイキャッシュを使用します。

Apacheが行うには基本的に2つのものがありますファイルがファイルをサーブや今までPHPに

を要求を転送

  • が存在する場合、私は、約25.000ファイルを持っている

    1. チェックこの単一のディレクトリに約8 GB。私はそれが次の年に少なくとも10倍に成長すると期待しています。

      これらのファイルを管理する際には問題はありませんが、HTTP経由で要求した場合、処理が遅くなるというごくわずかな気持ちがあります。だから私はこれが本当に起こっているのか、それとも私の主観的な印象なのか、疑問に思いました。

  • +1

    ファイルシステムとディレクトリ内のファイルの検索方法によって異なります。線形検索を使用すると速度が遅くなります。索引付けされている場合は、ファイルの数に問題はありません。これはApache(または他のどのサーバー)にも固有のものではありません。これはunix.SEやServerFault.comにとってはおそらくもっと良い質問です。 – Barmar

    +0

    ええ、そうですね。基本的には、より大きなファイルセットを検索するのに常に時間がかかります。おそらく、ファイルシステムが魔法のようにファイルリクエストを最適化またはキャッシュして、実際の階層を廃止することができると私は考えました。 – sboesch

    +0

    実際にはディレクトリキャッシュがあるので、私が示唆したほど悪くはありません。しかし、大きなディレクトリをキャッシュにロードするにはコストがかかります。 – Barmar

    答えて

    0

    バークレーFFSに基づくほとんどのファイルシステムは、複数の間接レベルのために、1つのディレクトリに多数のファイルがあるとパフォーマンスが低下します。

    私はHFSやNTFSのような他のファイルシステムについてはわかりませんが、同じ問題が発生する可能性があります。

    私は一度同様の問題に対処しなければならず、ファイルのマップを使用してしまいました。

    md5 myfilename-00001(例えば):e5948ba174d28e80886a48336dcdf4a4のようなものだったと思って、それをe5/94/8ba174d28e80886a48336dcdf4a4というファイルに入れました。その後、マップファイルは 'myfilename-00001'から 'e5/94/8ba174d28e80886a48336dcdf4a4'にマップされます。私の目的のためにはうまくいきませんでしたが、ちょっとしたコードが必要でした。

    +0

    あなたの答えをありがとう。問題は、これらのファイルを複数のディレクトリに分割する方法がわからないということではなく、必要であるかどうかを知りたいだけでした。そして、はい、それはそうです:) – sboesch

    関連する問題