我正在处理有内存泄漏的旧版.NET应用程序。为了尝试缓解内存失控的情况,我将应用程序池的内存限制设置为500KB至500000KB(500MB)之间的任意值,但是由于我可以登录并查看物理内存,因此应用程序池似乎不遵守设置内存(无论什么值,5GB及以上)。该应用正在杀死服务器,我似乎无法确定如何调整应用池。为了确保此应用程序池不超过500mb的内存,建议您建议什么设置。
这是一个示例,应用程序池使用的是3.5GB
因此,服务器再次崩溃,这就是原因:
具有低内存限制的同一个应用程序池,有1000个回收请求,每隔两到三分钟就会导致一次回收事件,但有时它会消失。
我也可以使用任何可以监视此过程的工具(作为任务或服务每30秒运行一次),并在超过一定限制时将其杀死。
尝试配置时间限制而不是内存限制,以查看是否获得更好的结果。看到这个。
—
内森·C
实际上,我将其设置为在100个请求之后可以回收,这似乎效果更好,但是所有这些似乎都像我期望的那样在某些应用程序池设置中不起作用。
—
lucuma
您是否启用了事件日志记录功能?里面有东西吗?
—
MichelZ 2014年
每2分钟就会有一个有关私有内存限制和回收的条目。问题是服务器的内存每隔几天就会耗尽,并且每次我检查时,此应用程序池都有(如图所示)使用的Gb的ram。
—
lucuma 2014年