网站运营与管理规划书,广州网站定制开发公司哪家好,网站建设 地址 上海石门二路,马鞍山住房和城乡建设局网站背景 代码写的有问题#xff0c;会很容易出现内存泄露的问题。应用如果是部署在docker容器里面的#xff0c;可以限制这个应用的内存。那么#xff0c;如果是传统的.NET Framework应用#xff0c;部署在IIS上面呢#xff1f;老黄曾经遇到过在一台服务器上面#xff0c;II… 背景 代码写的有问题会很容易出现内存泄露的问题。应用如果是部署在docker容器里面的可以限制这个应用的内存。那么如果是传统的.NET Framework应用部署在IIS上面呢老黄曾经遇到过在一台服务器上面IIS部署了五六个站点。其中一个站点占用了 5、6G 的内存然而服务器只有8G的内存甚至有时候会把其他一两个站点的应用程序池逼停了。想想就可怕资源的隔离没有做好导致其他应用也受到了影响。其实对IIS来说还是可以对站点(应用程序池)做限制的。如何处理 应用程序池中有两个关于内存的配置虚拟内存限制(KB)专用内存限制(KB)虚拟内存限制指的是工作进程可以使用的最大虚拟内存量超过这个内存量就会导致应用程序池回收。默认值是0表示不限制。专用内存限制指的是工作进程可以使用的最大专用内存量超过这个内存量就会导致应用程序池回收。默认值是0表示不限制。正常来说我们常说的应用占用了多少内存其实说的就是这个专用内存。我们打开的任务管理器上面看到的内存也是专用工作集。所以针对这上面说的情况我们只要限制这个程序池的专用内存限制即可。注虚拟内存设的有问题应用会一直不停的重启。好比说我们要限制应用只能用100MB内存就把专用内存限制填102400。当应用的内存达到这个限制的时候它会重新拉起一个进程然后把老的进程kill掉。可以通过事件查看器捕获到对应的事件。这样就可以在一定程度上缓解多个应用之间的互相影响。当然最终的解决办法还是要把内存泄露的bug处理掉。