2013-04-16 89 views
2

我們在ASP .NET中開發的站點預計會有1000個併發用戶,並且由於數據庫中列表數量的增加而導致其性能下降。什麼樣的緩存(如NCache或Appfabric)將是最好的減少數據庫負載並提高性能的併發用戶。請給我一些建議。ASP .NET應用程序緩存

回答

2

如果你有多臺服務器運行比Appfabric類的緩存系統將有很大的幫助。在構建asp.net緩存系統也是好的,如果要用於單個服務器。其中最重要的因素是你將擁有的RAM容量。如果要添加更多RAM,您的網站將更快,更快。即使memcache也可以使用Is there a port of memcache to .Net?。即使你看到堆棧溢出這樣的網站,他們在數據庫服務器上也有大約380 GB的RAM,這使得它快速減少。即使SQL服務器也是爲了將數據保存在RAM中以使其快速訪問。

2

在使用分佈式緩存之前,首先審覈您的網站性能。過去人們絕對想要應用一些對他們毫無用處的東西,我看到了太多的錯誤。

您的網站變得緩慢,1000個併發用戶?好的,這很正常:小型網站沒有像大型網站那樣的架構。但讓我們看看爲什麼(無序列表):

  • 簡單地說,什麼是慢?一個網頁,整個網站?
  • 網絡:您的網絡基礎設施是否最優?
  • DB:數據庫是否過載?您的Queres可以優化嗎?
  • MVC:你在使用異步嗎?會話? web Api呢?
  • 網絡:網絡性能如何? (CDN,腳本,CSS,請求數,...)

要儘快檢測系統中的瓶頸,有兩種方法:負載測試和監控生產系統。

在這背後,有ScaleIn VS ScaleOut挑戰。我沒有說分佈式緩存對你來說不是很好的解決方案:我只是說最簡單!

0

我強烈建議您查看您的ASP.NET應用程序的NCache。 NCACHE

是一個非常功能的.NET應用豐富的分佈式緩存,並遠遠超過應用面料更強大

您可以使用NCache進行應用程序數據緩存,ASP.NET會話狀態存儲和運行時數據共享。

0

在GET操作使用:outputcache/如果您使用保存到數據庫

EF => Configuration.AutoDetectChangesEnabled = false; 

大多數問題在不良優化的代碼。