首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找Server的内存消耗原因

如何查找Server的内存消耗原因
EN

Stack Overflow用户
提问于 2014-08-02 09:06:48
回答 2查看 910关注 0票数 3

环境:

  • Windows 2012 r2
  • Server 2014
  • ASP.NET MVC 5
  • 实体框架代码-第一

我正在将ASP.NET MVC 5应用程序部署到服务器上。

在任务管理器上,Server内存使用量在一小时内迅速增长,超过5G,并且网站已经失效。

Server内存消耗正在以恒定的速度增长,但从未减少过。

如何在Server中找到此内存消耗的原因?

我买得起任何商业解决方案。我只需要找到这个记忆泄漏。

我只使用了telerik的跟踪,但我没有发现任何奇怪的地方,似乎所有dbcontext连接都被释放了。

但是,我只看到当dbcontext连接未被释放时,sql服务器的内存消耗很高。

我该怎么办?

如何找到这个内存泄漏?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-02 09:32:17

我非常怀疑这是一个内存泄漏-你是否定义了一个最大值。Server的内存大小?

如果不是-这是正常的行为。

除非被告知,否则SQL Server将占用越来越多的内存来保存用于在内存中回答查询的数据库页(而不是一次又一次地从磁盘获取它们)。

它将使用它所能获得的所有内存,或者尽可能多地使用它作为最大的内存。它从不释放内存-- Server如何知道在下一个传入请求中不会使用给定的数据库页?它只是尽可能地将页面保存在内存中--直到内存耗尽(物理内存或配置内存)。

票数 3
EN

Stack Overflow用户

发布于 2014-08-02 09:33:17

常识和文件。

Server将使用所有内存作为缓存(有限制它的设置),因为它假定可以重用数据。THis是它变得更快的方式。磁盘,甚至是SSD,都比RAM慢得多,因此任何缓存命中都有很大帮助。

如果您真的坚持在一些低规格的东西上运行sql服务器,那么我建议您为内存的使用设置一个实际的限制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25093444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档