ASP.NET应用程序/会话缓存强制应用程序是否重新启动?

时间:2011-11-21 06:08:32

标签: asp.net vps session-cache

我希望这更像是一场讨论而不是任何事情。

所以我在www.utopiapimp.com上有一个网站。现在,它每天的页面浏览量超过1密耳。这个网站上有大量的动态数据总是在变化。想想“实时股票代码”,但对于在线网络游戏。我遇到了一个很深的障碍。

我在网络应用程序启动时从数据库中加载了一些静态项目,但在每次用户登录后,我会为该用户进行15分钟的调用,并将整个对象从这些15分钟的调用中填充到缓存中。在我的服务器显示器上,我可以看到我的4 gbs ram slowely inch只有2 gbs。然后发生了什么,我不知道是什么。

1核CPU VPS,永远以25%开始。有时加工峰值超过50%。但是大约20分钟后,2gbs或者公羊突然下降到大约400 mgs,永远无法恢复。

我可以一遍又一遍地重复这个。我不知道是什么导致了这一点,但我一丝不苟地扫描了网站和代码,并发现没有真正的挂机。我开始想我可能会访问缓存并在缓存中存储太多东西,但我真的没有得出结论。

因此,在听到这种情况之后,有人可以提出一些我可能会遗漏的事情吗?也许应用程序崩溃了?并且它很难通过收到的点击次数重新启动并且不断崩溃?

我非常喜欢这个问题,似乎无法找到解决方案。

也许升级到更好的vps可能会有效,但我不想升级几乎找到同样的问题。

任何帮助建议都会很棒,因为过去一周我一直在努力解决这个问题,而且我的用户真的很想找到解决方案。

修改

我联系了我的托管公司并等待回复。任何其他建议或想法将不胜感激...

非常感谢!

1 个答案:

答案 0 :(得分:1)

machine.config中的processmodel部分包含一个参数memoryLimit,通常占可用内存的60%。也许这会导致应用程序池重置。尝试增加数量以查看是否会导致重置。

<processModel ...
          memoryLimit="60"
/>

另一种可能性是.NET缺少内存并清除缓存。我曾经创建一个管理页面,在那里我可以看看哪些对象当前存储在Cache中。

编辑: 如果您在会话中存储大量数据,则每个用户所需的内存都会增加。在sesssion超时后,所需的内存将减少。您应该始终尽量避免在会话中存储太多数据。

相关问题