Exchange 2007 前端 IIS 内存占用过高

简介:

已经碰见了好几次,在Exchange2007的场景中,前端角色所在服务器的w3wp.exe进程总是占用大量内存,以至于触发反压组件,停止了正常的邮件流投递,造成业务中断。

终于下决心查一下到底问题问题出在哪块,虽然Exchange 2007一直在出各种SP和rollUP声称解决了该问题(SP2,或者是SP3 rollup10)。但是打过补丁之后该吃内存的还是吃内存,该报警反压的还是报警反压。

打开任务管理器,查看里面选择列把PID勾上,就可以看到PID为6560的w3wp进程占用了较大量的内存。

image

image

然后打开命令行,如果是windows server 2003的话,输入iisapp ,就可以获得所有IIS应用程序池对应的进程PID值,从图中可以看到

PID6560的应用程序池对应的是MSExchangeSyncAppPool。

如果是windows 2008 (IIS7) 及以上,则需要输入%windir%\system32\inetsrv\appcmd.exe list wp来查看对应的应用程序池

image

打开IIS管理器,定位到该应用程序池,单击右键选择属性,接着对其内存使用进行相应的限制即可。

如图,该服务器物理内存配置不高,所以限制为2GB,以留给IIS本身足够的时间来进行自动回收。

image

image

限制完毕之后,反压日志明显减少。

该应用程序进程池对应的是Exchange的ActiveSync组件,仔细想想在Exchange 2007刚发布的年代,有多少人用手机ActiveSync组件去收发邮件,所以产品上出现性能问题也正常,在后面的10和13中这问题就出的不多了。

所以彻底解决问题的方法还是1、升级。2、加内存……

最后附上一个用于排查 Exchange ActiveSync 问题的脚本

http://blogs.technet.com/b/exchange_chs/archive/2012/02/24/exchange-activesync.aspx

这个脚本的用途是通过该Exchange ActiveSync应用程序池的日志,log parser2.0工具以及powershell2.0来分析所有的使用移动设备通过EAS服务连接Exchange服务器的状态。

可以获取到每台设备每天连接了多少次等信息,在这些信息中,如果有每天超过1000次连接的设备,那在产品组看来这就是非正常的高频度连接。同时也可以借由此脚本来发现IIS各时间段的压力和性能指标。



本文转自 zhou_ping 51CTO博客,原文链接:http://blog.51cto.com/yuntcloud/1679574,如需转载请自行联系原作者


相关文章
|
14天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
6月前
|
Web App开发 缓存 前端开发
【Flutter前端技术开发专栏】Flutter中的性能优化与内存管理
【4月更文挑战第30天】本文探讨了Flutter应用的性能优化和内存管理。关键点包括:减少布局重绘(使用`const`构造函数和最小化依赖),选择合适的动画实现,懒加载和按需加载以提升性能。同时,强调了避免内存泄漏和优化内存使用,利用Flutter提供的性能分析工具。实践案例展示了如何优化ListView,包括使用`ListView.builder`和缓存策略。通过这些方法,开发者可以提升应用的响应性、流畅性和稳定性。
261 0
【Flutter前端技术开发专栏】Flutter中的性能优化与内存管理
|
4月前
|
自然语言处理 前端开发 JavaScript
前端 JS 经典:闭包与内存泄漏、垃圾回收
前端 JS 经典:闭包与内存泄漏、垃圾回收
41 0
|
6月前
IIS6: IIS内存释放问题
IIS6: IIS内存释放问题
31 1
|
6月前
|
存储 缓存 JavaScript
【Web 前端】JS哪些操作会造成内存泄露?
【4月更文挑战第22天】【Web 前端】JS哪些操作会造成内存泄露?
|
6月前
|
Dart 前端开发 Java
【Flutter前端技术开发专栏】Flutter中的内存泄漏检测与解决
【4月更文挑战第30天】本文探讨了Flutter应用中的内存泄漏检测与解决方法。内存泄漏影响性能和用户体验,常见原因包括全局变量、不恰当的闭包使用等。开发者可借助`observatory`工具或`dart_inspector`插件监测内存使用。解决内存泄漏的策略包括避免长期持有的全局变量、正确管理闭包、及时清理资源、妥善处理Stream和RxDart订阅、正确 disposal 动画和控制器,以及管理原生插件资源。通过这些方法,开发者能有效防止内存泄漏,优化应用性能。
361 0
【Flutter前端技术开发专栏】Flutter中的内存泄漏检测与解决
|
6月前
|
移动开发 前端开发 JavaScript
Java和web前端,IT新人该如何选择?,2024年最新Web前端内存优化面试
Java和web前端,IT新人该如何选择?,2024年最新Web前端内存优化面试
|
存储 JavaScript 前端开发
手撕前端面试题【javascript~ 列表动态渲染、无重复数组、数组排序、新数组、创建数组、深浅拷贝、内存泄露等】
html页面的骨架,相当于人的骨头,只有骨头是不是看着有点瘆人,只有HTML也是如此。 css,相当于把骨架修饰起来,相当于人的皮肉。
76 0
|
JavaScript 前端开发 程序员
|
存储 JavaScript 前端开发
前端 js 栈内存和堆内存 基本数据类型和复杂数据类型的区别?
前端 js 栈内存和堆内存 基本数据类型和复杂数据类型的区别?
101 0