我正在开发一个需要从大约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. 限制内存缓存存储
- 4. 在Linux中限制Chromium缓存大小
- 5. 如何限制SDImageCache的磁盘和内存缓存的大小
- 6. Symfony清除缓存内存限制
- 7. 在内存中缓存大型数据集在ASP.net服务器
- 8. nginx的限制总缓存大小
- 9. 限制缓存目录的大小
- 10. 如何超过ASP.NET缓存应用程序中IIS7的60%内存限制
- 11. 限制缓冲区缓存
- 12. 移动图像缓存大小限制?
- 13. 缓存内存中的大量数据
- 14. ASP.NET - 缓存用户权限
- 15. 控制缓存在asp.net
- 16. 最大缓存大小
- 17. Android消耗的内存大小限制
- 18. 缓存控制:最大年龄设置
- 19. 在Firefox中检查缓存控制的最大使用期限设置
- 20. 在ASP.NET缓存中缓存EF实体
- 21. 在ASP.NET中为大型对象缓存
- 22. 在Asp.net中缓存
- 23. 用最大大小的缓存文件夹实现PHP缓存
- 24. asp.net互操作内存限制
- 25. Asp.net核心内存使用限制
- 26. 限制.NET进程可以使用的最大内存量?
- 27. Tomcat - 如何限制Tomcat将使用的最大内存
- 28. iPad上的最大应用内存限制?
- 29. 建议memcached的缓存/内存大小?
- 30. 在内存缓存
你会更好地加快数据库查询,而不是想要缓存所有数据。 – 2014-10-30 07:45:58
如何使用全文搜索的东西(我认为你想要)像Lucene.net? – sisve 2014-10-30 08:21:23
我同意这应该在数据库中完成。如果您提供您正在使用的查询来查找记录和表格架构,我们可以帮助您。 – Magnus 2014-10-30 08:23:39