evi*_*not 6 c# asp.net iis-7 caching
请原谅,如果这是更多的服务器故障与stackoverflow.它似乎在边境.
我们有一个应用程序,它使用ASP.NET缓存为电子商务应用程序缓存大量产品数据.这是一个包含65K元素的字典对象,我们的计算将对象的大小设置为~10GB.
问题:
对象消耗的内存量似乎远远超过我们的10GB计算量.
最大的关注: 我们似乎无法使用服务器中超过60%的32GB.
到目前为止我们尝试过的:
在machine.config/system.web中(sf不允许标记,请原谅格式化):
processModel autoConfig="true" memoryLimit="80"
Run Code Online (Sandbox Code Playgroud)
在web.config/system.web/caching/cache中(sf不允许使用标记,请原谅格式化):
privateBytesLimit = "20000000000" (and 0, the default of course)
percentagePhysicalMemoryUsedLimit = "90"
Run Code Online (Sandbox Code Playgroud)
环境: Windows 2008R2 x64 32GB RAM IIS7
似乎没有什么能让我们超过60%的价值.查看taskman的截图.
您是否考虑过使用不同的缓存策略?内置的缓存功能并不丰富,您将很难让它做更多的事情(除非某些 IIS 专家有一些聪明的工作)。
我们花了很多时间在这上面并且放弃了。我们实际上使用更精简的对象来存储在缓存中,并根据需要获取更完整的对象。
当我们需要考虑这一点时,我们研究了 Memcached 和 Velocity,但暂时没有部署它们。但它们的功能更加丰富。
另外,您如何通过代码将项目存储在缓存中?您是在应用程序开始时还是在第一次请求之后将它们放在那里?我问的原因是您的缓存键是否有效,并且实际上您一遍又一遍地填充缓存并且没有检索任何内容(这可能只是一种对象类型的情况)。例如,我们通过将时间附加到特定于日期的缓存键来成功做到这一点。
| 归档时间: |
|
| 查看次数: |
4593 次 |
| 最近记录: |