공유 서버에 호스팅 된 Asp.net 응용 프로그램이 있습니다.Asp.Net 응용 프로그램이 다시 시작되어 캐시가 큽니다.
캐시 개체가 거의 없습니다. 하나의 캐시 객체에는 3 개의 열이있는 약 1 백만 개의 레코드가 들어 있습니다. 나머지 캐시 오브젝트에는 수백 개의 레코드 만 있습니다.
모든 레코드가 정적입니다. 이러한 레코드는 변경되지 않으며 자동 완성 아약스 호출에 표시됩니다.
SQL Server 2008을 사용하여 데이터를 저장하고 있습니다.
는<compilation debug="false" targetFramework="4.0">
응용 프로그램은 내가 그것을 설정하면보다 더 때때로 시작
TRUE
는내 코드 :
protected void Application_Start(object sender, EventArgs e)
{
Global.CacheInfo += "Started on" + "----" + DateTime.Now + "<br/>" + Environment.NewLine; ;
RegisterRoutes(RouteTable.Routes);
RouteTable.Routes.RouteExistingFiles = true;
using (BEntity context = new BEntity())
{
// Adding Items to Cache
BLSuggestion.GetAllTitle();
BLSuggestion.GetAllSubCategories();
}
PerformanceCounter pc = new PerformanceCounter("ASP.NET Applications", "Cache % Machine Memory Limit Used", "__TOTAL__", true);
Global.CacheInfo += string.Format("{0:0.00}%", pc.NextValue());
}
이 값은 주위에 관해서
나는 다음을 설정하는 경우 응용 프로그램이 시작되면 95 %. 나중에 몇 가지 캐시 개체가 만들어집니다. 그러나 그 후에도 약 1 분 후에 응용 프로그램이 다시 시작됩니다.
감사의 말을 전하면됩니다.
캐시 (GetAllTitle 및 GetAllSubCategories)가 채워지는 코드는 무엇입니까? 이 캐시가 모든 메모리를 소비하는 경우 메모리에 데이터를 캐시하는 더 보수적 인 방법이있을 가능성이 큽니다. – hatchet