asp.net-mvc – 为什么IIS没有清理池回收导致网站内存异常的旧工作进程(w3wp.exe)?
|
我有一个asp.net-mvc网站,最近我的网络服务器上出现了内存不足的异常。我只有一个应用程序池,我们最近将IIS设置为在达到某个限制后进行回收。前几天我进去看了4个w3wp.exe进程正在运行(每个进程都使用了~1.8GB的内存) 我假设在回收过程中,它不会杀死旧的工作进程,最终我的网站出现了内存异常,因为该框只有8GB内存。我可以在盒子中添加内存,但我担心为什么这些旧的进程没有被清理。 是否有任何建议可以找出为什么这个循环过程没有杀死旧的w3wp.exe进程并让它们运行?有任何建议可以了解根本原因甚至解决方法以避免这种风险吗? 解决方法当我运行FFMpeg.exe或一些带WPF图形的PDF转换时,我有类似的问题,IIS进程不会关闭,并会发出内存未找到的错误。问题不在于IIS,而是在崩溃过程中阻塞的过程中会出现一些死锁。解决方法是,将您的网站划分为两个单独的网站,一个应该只对通常没有崩溃的数据库进行事务处理。视频/照片转换,PDF转换或任何其他可能导致崩溃的逻辑等逻辑应移至其他Web服务。并在内部使用来自您网站的HTTP调用来通过Web服务处理它们。 现在,在这种情况下,仍然没有办法绕过Web服务进程崩溃,所以我决定每100个请求回收应用程序池工作者(我看了几个请求后选择了这个数字,平均来说只有在超过1GB之后才会命中200个请求)我通过每个池进行4个进程将应用程序池转换为Web Garden。 此设置的优点是,您可以在以后轻松地将Web服务进程移动到其他计算机,您可以增加/减少每个池的进程数。而您的主要网站,只是做交易过程变得高度响应,因为它不受Web服务的流程回收的影响。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET MVC和Web Forms在同一个Web应用程序中?
- asp.net-mvc-3 – mvc是否支持整个区域的Web.config设置继承
- asp.net – “线程被中止了什么”. ‘SNIReadSync(SNI_Conn
- asp.net-mvc-4 – 后退点击刷新页面 – MVC 4
- ASP.Net使用DBNULL检查值
- asp.net – 可以从没有这些.svn文件夹的subversion中检出文
- asp.net-mvc – 有什么技巧/技巧使用亚音速与Asp.Net MVC框
- asp.net-mvc – Ninject和连接字符串
- ASP.NET网站中的预定作业,无需购买专用服务器
- asp.net-web-api – WebAPI 2.2不支持substringof函数
- asp.net-core – 用于ASP.NET 5的Web服务器,无需
- ASP.NET Web Api在返回404时返回200 OK
- asp.net – 用于分析在azure上运行的网站性能的步
- asp.net-mvc – 从视图到控制器POST信用卡数据是
- asp.net-mvc – RouteCollection.Ignore和RouteC
- 全局导入/使用.NET中的别名
- 是否可以优化ASP.NET WebForms以便像ASP.NET MVC
- ASP.NET自带对象JSON字符串与实体类的转换
- 在ASP.NET中使用JQuery选择ID属性
- asp.net-mvc-2 – MVC的DataAnnotationsModelMet
