2011-09-07 13 views
0

私は、毎日〜500人のユニークビジターが新しいプロジェクトであるサイトに問題があります。これらの訪問者のうちのいくつかは同時に、同時に100人のオンライン訪問者に話そうとしているサイトをヒットしました。asp.net mvc 3 RAM使用量とキャッシング出力(varybycustom)

w3wp.exeのRAMの使用は、数時間後にサーバーの状態を見て、RAM使用量が500Mを超えていると予想されます。

出力をキャッシュしてパフォーマンスを向上させることにしました。 (私にはramの問題についてのアドバイスがありますが、教えてくださいmvc 3の初心者です)

私はOutputCacheの属性をすべてのコントローラに追加しました。私は多言語をサイトにするためにクッキーを使用しており、私はログに記録されたユーザー情報に関するセクションを持っています。ユーザーがログインまたはログアウトしたときにキャッシュを解除してキャッシュする必要があります。

public override string GetVaryByCustomString(HttpContext context, string custom) 
    { 
     switch (custom) 
     { 
      case "UICulture": 
       return context.Request.Cookies["CurrentUICulture"].Value.ToString(); 

      default: 
       return ""; 
     } 
    } 

    and this controller's action. 

    [OutputCache(Duration = 60, VaryByParam = "none", VaryByCustom="UICulture")] 
    public ActionResult Uniques() { 
      return View(ukList); 
    } 

これはオーバーライドに使用した方法ですが、機能しません。

答えて

2

.NETフレームワークは、データとページをキャッシュする方が良いと思われるRAMの量を消費します。出力キャッシュは、おそらくアプリケーションがとるRAMの量に何もしません。サーバー上の他のスレッドがRAMを要求していない場合、.NET Frameworkはシステムに十分なRAMがある場合にパフォーマンスが向上するため、システムに解放しません。

これは心配しないでください。

関連する問題