3

通常、Web サーバーには、Web 経由で表示されるファイルシステムのサブツリーを示すドキュメント ルートがあります。したがって、たとえば、ドキュメント ルートが /home/foouser/public_html/ の場合、Web サーバーはhttp://www.foo.com/pics/foo.jpgのリクエスト を /home/foouser/ にマップします。 public_html/pics/foo.jpg. これにより、foo.jpg の inode 番号を取得するための一連のディスク要求が発生します。

Web サーバーは、ディスク アクセスの数を減らすために何らかの最適化を行っていますか (または) サーバー管理者の役割は、ドキュメント ルートをできるだけ "/" に近づけて、ファイル内のディスク アクセスの数を減らすことですか?ファイル名から inode 番号への変換?

4

1 に答える 1

0

これがあなたの質問に対する直接的な答えではないことは承知していますが、キャッシュ戦略を設定することで、ディスクの読み取りを大幅に減らすことができます。特に、静的コンテンツがサーバーでホストされていない場合。

オプション:

  • CDN で静的コンテンツをホストする:
    • 長所: すべての負荷を他の誰かのネットワークにオフロードします。料金?
    • 短所: 潜在的にコントロールが少なくなります。料金?
  • 同じく CDN である Contendo/Akamai を使用しますが、いくつかの違いがあります。
    • 長所: コンテンツをホストしますが、最初の読み取りの後、cdn はコンテンツと共に送信するヘッダー (静的かどうか) に基づいてキャッシュを処理します。
    • 短所: ヘッダーの管理が非常に煩わしい場合があります。古いコンテンツを置き換えたい場合、キャッシュ無効化 (独自のキャッシュを壊すこと) を処理するのは煩わしい場合があります。
  • 物事をローカルにキャッシュします。たとえば、DB リクエストを作成している場合は、リクエストをキャッシュできます。次にコードを実行するときは、最初にメモリ内キャッシュを確認してください (すぐに db リクエストを行うのではなく)。ページ全体をキャッシュしてから、ページ/アセットのキャッシュされたバージョンが存在するかどうかをアプリケーションコントローラー/ルートレベルでチェックして、それを提供できます。
    • 長所:コントロールが多い。ほとんど何でもキャッシュできます。
    • 短所: 細かいことすべてにキャッシングを設定するには、膨大な作業が必要です。ウェブサイトのあらゆる部分に戦略が必要です。

資産を AmazonS3 や Rackspace などに移動することから始めることをお勧めします。Joyent には、これにも対応する機能があります。次に、s3 の cloudfront を有効にすると、cdn がオンになり、さまざまなリージョンにキャッシュされます。これは非常に安価なソリューションです (ファイルの量によって異なります)。

コンテンドルートに行くこともできます。

アプリケーション側のルートでのキャッシュにはかなりの作業が必要で、サーバー/言語/データベース/構成に完全に依存します。

于 2012-12-09T22:29:57.983 に答える