我怎么能超出ASP.NET缓存应用IIS7的60%内存限制 [英] How can I exceed the 60% Memory Limit of IIS7 in ASP.NET Caching application
问题描述
对不起,如果这是更serverfault与计算器。这似乎是在边境。
Pardon if this is more serverfault vs. stackoverflow. It seems to be on the border.
我们有一个缓存大量产品数据,为使用ASP.NET缓存电子商务应用的应用程序。这是65K元素的字典对象,而我们的计算把对象的大小在10GB〜。结果
问题:
We have an application that caches a large amount of product data for an e-commerce application using ASP.NET caching. This is a dictionary object with 65K elements, and our calculations put the object's size at ~10GB.
Problem:
-
的内存中的对象占用的金额似乎是远远超过我们的10GB的计算。
The amount of memory the object consumes seems to be far in excess of our 10GB calculation.
最关心的问题::我们似乎无法使用32GB的超过60%的服务器。
BIGGEST CONCERN: We can't seem to use over 60% of the 32GB in the server.
我们试过到目前为止:
在machine.config中/ System.Web程序(SF不允许的标签,原谅格式化):
In machine.config/system.web (sf doesn't allow the tags, pardon the formatting):
processModel autoConfig="true" memoryLimit="80"
在web.config中/ System.Web程序/缓存/缓存(SF不允许的标签,原谅格式化):
In web.config/system.web/caching/cache (sf doesn't allow the tags, pardon the formatting):
privateBytesLimit = "20000000000" (and 0, the default of course)
percentagePhysicalMemoryUsedLimit = "90"
环境:
2008R2的Windows 64
32GB RAM
IIS7
Environment: Windows 2008R2 x64 32GB RAM IIS7
似乎没有什么可以让我们超过60%的价值。
见taskman的截图。
Nothing seems to allow us to exceed the 60% value. See screenshot of taskman.
<一个href=\"http://www.freeimagehosting.net/image.php?7a42144e03.jpg\">http://www.freeimagehosting.net/image.php?7a42144e03.jpg
推荐答案
一个有点晚了,但我有几乎相同的问题。有问题的的memoryLimit
在设置中processModel是,它只是似乎没有任何效果,尽管被记录为这样的。
A little late but I'm having nearly the same issue. The problem with the memoryLimit
setting on processModel is that it just seems to have no effect despite being documented as such.
percentagePhysicalMemoryUsedLimit
同样看起来像它应该做的事,但没有效果。
percentagePhysicalMemoryUsedLimit
similarly looks like it should do something but has no effect.
privateBytesLimit =200亿
的确实的工作虽然。我去和调试过程中,发现了CacheMemorySize pressure对象,并将其成功地拿起值,并将其设置为_memoryLimit。我会仔细检查。
privateBytesLimit="20000000000"
does work though. I went and debugged the process and found the CacheMemorySizePressure object and it successfully picked up the value and set it to _memoryLimit. I would double check that.
另一种选择是设置上的IIS应用程序池专用内存使用回收阈值。这也应该得到回升,并覆盖默认的60%的上限。
Another option is setting a Private Memory Usage recycle threshold on the IIS app pool. That should also get picked up and override the default 60% limit.
第三种选择是使用新的 的MemoryCache
类,并设置 PhysicalMemoryLimit
就可以了。
A third option is using the new MemoryCache
class and setting the PhysicalMemoryLimit
on it.
这篇关于我怎么能超出ASP.NET缓存应用IIS7的60%内存限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!