我正在開發一個需要從大約500萬條記錄(大約4GB數據)中搜索記錄的asp.net應用程序。客戶正在尋找更高的性能並決定使用內存緩存。但是我在將數據從asp.net上傳到內存緩存時遇到了問題。我試着改變應用程序池設置,並將虛擬內存設置爲0,將私有內存設置爲0 ..沒有任何結果。它正在上傳到1.5GB左右,並拋出內存異常。當我通過在應用程序屬性中的構建設置中取消選中「32位」來使用控制檯應用程序推送數據時,沒有任何問題。 我的問題與asp.net。我使用.net框架工作4.0與4核心服務器,在服務器的可用內存大約49GB。我也嘗試在應用程序池中啓用64位模式下的32位運行。但沒有任何改變。 如果有任何解決方案,請給我建議。內存緩存在Asp.net中的最大限制
0
A
回答
0
正如John已經提到的那樣:查詢5.000.000記錄是數據庫的工作,而不是您的代碼。如果你正確地配置數據庫(讓數據庫使用內存作爲緩存,正確的索引,性能SQL查詢),我會說以99.9%的機會,數據庫將比在ASP.NET中創建的任何東西都快得多。
無論如何,如果你真的想以相反的方式來做,你需要創建一個64位的進程。
清單做這件事(從我的頭 - 爲了完整性無法保證):
- 解爲「任何CPU」或「64」
- 運行IIS在64的編譯(所有部分)位CPU的OS(這應該是49 GB RAM可用的情況下)
- 設置應用程序池以作爲沒有存儲器極限的64位過程運行:
- 應用程序池 - >「您的池」 - >高級設置...
- >啓用32位應用程序 - >錯誤
- >專用空間限制(KB) - > 0
- >虛擬內存限制(KB) - > 0
- 應用程序池 - >「您的池」 - >高級設置...
+1
或者可能讓緩存作爲自己的進程運行在IIS之外。 – Magnus 2014-10-30 08:31:35
0
謝謝你們。我同意我可以在我的數據庫中做到這一點。我正在處理每秒大量的請求。我的數據庫查詢是這樣的:select a,b,c,d,e從table1其中id =主鍵...這是非常簡單和高效的查詢..雖然這是高效的..它沒有提供所需的性能。所以我們決定使用緩存。現在我們通過分別創建一個Windows服務(它創建一個代理和主機緩存)和Web應用程序來解決這個問題。網絡應用程序內部調用這個Windows服務..它現在工作。謝謝你的所有建議。
相關問題
- 1. 高速緩存內存大小限制
- 2. ASP.NET緩存最大大小
- 3. 限制緩存圖像asp.net
- 4. 限制Firebase內存中緩存
- 5. 限制內存緩存存儲
- 6. 限制Dropbox緩存大小
- 7. 在Linux中限制Chromium緩存大小
- 8. 節點JS pm2最大內存限制
- 9. setrlimit不能限制最大內存量
- 10. 如何限制SDImageCache的磁盤和內存緩存的大小
- 11. Symfony清除緩存內存限制
- 12. 核心數據存儲限制,緩存限制,iPhone上的內存限制
- 13. 在內存中緩存大型數據集在ASP.net服務器
- 14. nginx的限制總緩存大小
- 15. Azure緩存服務的大小限制
- 16. 限制緩存目錄的大小
- 17. 內存緩存1MB限制,如何存儲在
- 18. 如何超過ASP.NET緩存應用程序中IIS7的60%內存限制
- 19. 有沒有辦法限制ASP.NET 3.5進程的最大內存大小?
- 20. 限制緩衝區緩存
- 21. NSMutableDictionary緩存和/或大小限制
- 22. 移動圖像緩存大小限制?
- 23. iOS中緩存的NSURLRequest內存大小
- 24. 緩存內存中的大量數據
- 25. OpenCL中的私有內存是否有最大限制?
- 26. ASP.NET - 緩存用戶權限
- 27. 控制緩存在asp.net
- 28. 取緩存控制在ASP.NET
- 29. 內核模式輸出緩存限制
- 30. 最大緩存大小
你會更好地加快數據庫查詢,而不是想要緩存所有數據。 – 2014-10-30 07:45:58
如何使用全文搜索的東西(我認爲你想要)像Lucene.net? – sisve 2014-10-30 08:21:23
我同意這應該在數據庫中完成。如果您提供您正在使用的查詢來查找記錄和表格架構,我們可以幫助您。 – Magnus 2014-10-30 08:23:39