2012-03-22 9 views
0

私は主にJavaScriptで構成された1つのウェブサイトを持っています。私はIIS上でそれをホストしました。 このウェブサイトは、ハードディスク上の特定のフォルダの画像を要求し、エンドユーザに表示します。 画像の要求は非常に頻繁で高速です。どのようにディスクの読み書きオーバーヘッドを減らすのですか?

ディスク読み取り操作のこのオーバーヘッドを減らす方法はありますか?

ハードディスクの一部をマッピングしてプライマリメモリとして使用するメモリマッピングについて聞いたことがあります。 誰かが私が間違っているか正しかったかを教えてもらえますか。 私が間違っている場合、これには他の解決策がありますか?

+0

[メモリ管理]とは関係ありませんでした。私はそれを[java]に変更しました。それをロールバックすることを承認しない場合。 – check123

+0

あなたは慎重に質問を読んでいない....私はJavaを言及していない...そのjavascript ... – dhroove

答えて

1

メモリマッピングは実行可能なアイデアですが、memcachedを使用することをお勧めします。それは別個のプロセスとして実行され、水平スケーリングを可能にし、最も要求の厳しいウェブサイトの一部で試用され、テストされ、アクティブに展開されます。うまく実装されたmemcachedサーバーは、大幅にreduce disk accessできます。

インターネットを含む多くの言語のバインディングもあります。私はあなたがJavaのソリューションを望んでいると仮定しています(ほとんどのタグはその言語に関連しています)。インストールおよびその他の管理作業については、this articleをお読みください。また、Javaのコードサンプルも用意されています。擬似コードに関しては

は、あなたが言うことができます、のための要求を受信したときに、何をする必要があるか、Moon.jpegは次のとおりです。

String key = md5_hash(Moon.jpeg); /* Or some other key generation mechanism */ 
IF key IN memcached 
    SUPPLY FROM memcached /* No disk access */ 
ELSE 
    READ Moon.jpeg FROM DISK 
    STORE IN memcached ASSOCIATED WITH key 
    SUPPLY 
END 

これは非常に粗製のアルゴリズムである、あなたは、キャッシュアルゴリズムについての詳細を読むことができますthis Wikiの記事です。

+0

私はこれを実行するのに助けを得ることができるように、いくつかのリンクやsomethingsを共有することができます.. – dhroove

+0

講義中に回答しました。 ;)私は、一度私が終了します。あなたのサーバー側の技術は何ですか? – check123

+0

nopes ..私はソフトウェア開発者です。現在、パフォーマンスの問題で戦っています...プロジェクトの1つで、 – dhroove

0

方向が間違っています。 IOを減らしてディスクを遅くしたい(相対)。ファイルを物理メモリにマップしたいと思うでしょう。簡単なシナリオでは、OSはファイルキャッシュを使ってこれを自動的に処理します。 Windowsがチューニング可能なパラメータを提供しているかどうか、少なくとも収集できるパフォーマンスメトリックを確認できます。

私が正しく覚えているのは、IISが静的ファイルを非常に効率的に処理する理由は、IISにリンクされたカーネルルーティングドライバだが、それ以上のISAPIフィルタなどを通過しない場合のみです。 Channel9など。

長期賢明なあなたがが任意の問題のように...などなどCloudFrontのようCDNに

を静的な資産を移動することになります...あなたは問題を抱えているあなたは確かにありますか?

+0

ファイルキャッシュとしては動作しません..これらのファイルは、画像はその特定のフォルダで毎日変更されます..その理由私は毎日メモリマップされたファイルにこれらのファイルを追加できる何かを探していました... – dhroove

+0

OSはファイルキャッシュを管理しますが、もちろんキャッシュの無効化はこれの自然な部分です。 –

関連する問題