应用程序池偶尔会增加内存消耗

时间:2016-05-04 12:08:22

标签: asp.net-mvc iis application-pool

我们刚刚推出了一个新的MVC5网站。该网站使用Entity Framework作为其数据,并为网站上使用的一些简单WebApi页面实施了几项AngularJS服务。

该网站经历了开发和测试而没有任何问题,但现在它安装在IIS 8.5生产服务器上,我们在IIS(WAS)事件日志中看到以下条目:

这是第一个错误:

A worker process serving application pool 'xxx' has requested a recycle
because it reached its private bytes memory limit.

大约90秒后,我们看到了这个错误:

A worker process '4880' serving application pool 'xxx' failed to stop
a listener channel for protocol 'http' in the allotted time.  The data
field contains the error number.

这是立即(同时到第二个),然后是第三个错误:

A process serving application pool 'xxx' exceeded time limits during
shut down. The process id was '4880'.

最后,我们看到另一个Application Pool reccycle事件:

A worker process serving application pool 'xxx' has requested a recycle
because it reached its private bytes memory limit.

我们目前每天大约看一次此问题,但似乎与网站流量/负载无关。

我们将应用程序池设置为在专用字节消耗上回收的原因超过了4,194,304 KB(4 GB) - 它通常(大概36小时)不到1 GB,这是因为我们我注意到,应用程序池私有内存消耗偶尔会线性增加。我们再次在开发或本地测试期间没有看到这一点。

我们已尝试在整个应用程序中运行数百个并发用户的负载测试,但无法复制此错误序列。

我们还使用ReSharper的 dotMemory 分析器在本地长时间运行应用程序,并且内存快照不会显示任何问题。

我们是否可以在生产服务器上运行任何可用的工具/技术,以便为我们提供有关正在发生的事情的更多信息?

0 个答案:

没有答案