我希望这更像是一场讨论。
我有一个网站www.utopiapimp.com。现在它每天的浏览量超过100万。这个网站上有大量的动态数据总是在变化。想想在线网页游戏中的"实时股票报价"吧。我遇到了很大的困难。
当web应用程序启动时,我从数据库加载了一些静态项目,但在那之后,每次用户登录时,我都会为该用户进行15次db调用,并从这些15次db调用中将整个对象放入缓存中。在我的服务器监视器上,我可以看到我的4gb内存慢慢地增加到只有2gb。然后发生了一件我不知道是什么事。
1核CPU VPS,开始永远处于25%。有时处理量会飙升到50%以上。但大约20分钟后,2gb或ram突然下降到约400毫克,再也无法恢复。
我可以一遍又一遍地重复。我不知道是什么原因造成的,但我一丝不苟地扫描了网站和代码,发现没有真正的挂起。我开始想可能是我访问了缓存,在缓存中存储了太多的东西,但我真的没有得出结论。
那么在听到这个场景之后,有人能建议我可能错过的东西吗?也许应用程序崩溃了?它会因为收到的点击量而挣扎着重新启动,然后一直崩溃?
我对这个问题很纠结,似乎找不到解决办法。
也许升级到一个更好的vps可能会工作,但我不想升级几乎发现同样的问题。
任何帮助或建议都将是辉煌的,因为我在过去的一周一直在努力解决这个问题,我的用户真的在寻找一个解决方案。
编辑
我联系了我的托管公司,等待回复。如有其他建议或意见,我将不胜感激。
非常感谢!
section processmodel in machine。config包含一个参数memoryLimit,通常为可用内存的60%。这可能会导致应用程序池的重置。尝试增加数量,看看这是否会导致重置。
<processModel ...
memoryLimit="60"
/>
另一种可能性是。net内存不足并清除缓存。我曾经创建一个管理页面,在那里我可以看看哪些对象目前存储在缓存中。
编辑:如果在会话中存储大量数据,则需要的内存会随着每个用户的增加而增加。会话超时后,所需的内存将减少。您应该尽量避免在会话中存储过多的数据。