在Small Business Server 2011安装中,许多w3wp.exe进程似乎使用了不成比例的内存。开箱即用的SBS安装中共有7个站点和20个ASP.NET应用程序池(Sharepoint,Exchange,WSUS和SBS特定的东西,例如Remote Web Workplace)。
随着时间的推移,由此产生的十几个w3wp.exe进程往往会消耗超过4 GB的服务器内存,而峰值应用程序池属于WSUS,工作集中的内存池约为800 MB。通过IIS MMC手动回收应用程序池有助于暂时减少内存使用(w3wp.exe进程缩小到10 MB,其中一些增长很快),但显然不是管理员整日想要做的事情。我找不到有关自动回收预装SBS的应用程序池的任何建议,因此我有些不情愿在生产系统上“做到这一点”。
我在网络上如何限制此限制的研究仅引发了几篇文章,指出w3wp的内存消耗不会损害但会提高性能,因为内存将“在其他应用程序需要时释放”。问题是它无法解决:
- 首先,SBS是多角色服务器,CIFS网络存储是其中的主要角色之一,CIFS网络存储极大地受益于文件系统缓存,而文件系统缓存又依赖于“空闲”内存,如“任何其他进程均未使用”方式”-几乎看不到用户并消耗内存的ASP.NET应用程序池起反作用
- 另一件事是,由于内存不足,我仍然必须看到w3wp实例的内存消耗大量减少-我看到的是轻微减少了不到100 mb,而是过度交换-再次损害了性能
我几乎从未管理过IIS或ASP.NET应用程序,因此欢迎有关如何有效减少应用程序池的内存需求的任何想法。