[聚合文章] 解决 IIS Worker Process 内存占用达到99%的问题

.Net 2017-12-11 28 阅读

昨天半夜,接到客户紧急异常,通过webservice接口调用的数据都返回异常。于是查看服务器查看,发现服务器运行卡顿严重,且一个IIS Worker Process进程内存占用达99%,猜测可能是IIS内存回收出现问题。于是手动结束了这个进程,接着程序恢复了正常。

反思这个事件,确定是IIS内存回收机制设置有问题。在忽略程序设计本身释放内存的逻辑问题下。通过IIS可以指定内存回收机制。

在应用池中又见高级设置中,我们可以看到,默认IIS设置的固定内存回收时间是1740分钟,也就是29个小时,但对于24小时运行的程序来说,这个设置效果不是很理想。紧接着我们可以看到专用内存限制设置项,默认是0,也就是没有限制。于是把它修改为1048576,也就是当内存达到一个G的时候,自动启动内存释放机制。它会等待当前进程完成,然后重新创建一个新的进程继续运行。效果不错。

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。