平台服务器句柄泄露问题的排查与解决

我们监控平台有台报警服务器,其主要功能是接收前端,TDDC,网管服务器等发送的报警,并依据报警联动配置进行相应的联动操作,最近发现在该服务器运行过程中,通过任务管理器查看其句柄数量会不断增加,以至于影响其他服务器工作,初步怀疑是句柄泄露问题,现对其进行分析排查。

句柄是Windows用来标识应用程序所建立或使用的对象的唯一整数,Windows的内核对象包括进线程,窗口,位图,GDI对象等等。应用程序通过句柄访问内核对象,当使用完内核对象之后需要释放资源关闭该内核对象句柄,如果未能正确关闭,则会造成句柄泄露。

一般而言,如果怀疑发生了句柄泄露,最首要任务是查找泄露的句柄类型,这样有助于后面的排查分析,缩小目标范围。这时可以通过一些辅助工具来帮助分析,如Process Explorer,PCHunter等,这些工具能够非常明了的看到进程所正在使用的内核对象,可以帮助我们找到问题所在。

打开Process Explorer,找到运行的报警服务器进程,该工具的会显示出报警服务器当前创建的内核对象句柄,如图,可以看出该进程的句柄数已经有上千个,而且还在快速增长中。

该工具很方便的一点是,当有新的内核对象创建时,在下方的列表框中会以绿色标识出来,方便查看,观察一段时间发现,不停的有线程对象创建,而且不会关闭,初步猜测应该是线程对象的句柄没有关闭导致。接下来的工作就是要找出这个线程内核对象在哪儿创建的。

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值