我有一个DAG设置与Server 2012 R2和Exchange 2013运行在三个服务器加上另一个服务器滞后副本。
我们似乎在所有的服务器上都有句柄泄漏,如果他们托pipe数据库似乎没有关系。 然而,令我感到奇怪的是,句柄泄漏似乎并不拥有大量的资源,例如,当句柄增加时,它并不使用吨和大量的内存,即使当其中一个服务器在261076达到峰值时也不会处理它真的增加了更多的内存使用。
处理漏洞是Windows进程LSASS,这也是一个令人头疼的问题,尽pipe我使用Perfmon进行监视,而且我使用了RAMmap,Process Explorer等,但是由于LSASS本身不是原因,所以它被certificate是一个难以排除的问题无论是“使用”LSASS是问题。
我在性能故障排除方面相当了解,但是只有在使用.NET进行内部编码时,这个盒子上的所有东西都是微软。
所以我想我的问题是:
处理泄漏和内存泄漏之间的区别是什么?如果没有内存泄漏,我可以处理泄漏吗? 如果是的话,纯手柄泄漏加class的危险是什么?
我还能做些什么来解决这个问题? 我打算安装SDK,并使用UMDH和Gflags来logging内存的快照,但是速度不是很快,所以这会有点痛苦。
有很多的信息,但不知道什么是相关的,所以你需要问我可以提供什么。
谢谢,
查尔斯
处理泄漏是内存泄漏的特例。 你从一个狭义的池中泄漏内存:一组可用的句柄。 通常情况下,句柄将是一个内存指针,在64位机器上需要8个字节。 所以261076处理时间8个字节是2039kB,就是2meg。 这是现代机器上的零钱。
但是你需要注意的问题是:当你用完手柄时会发生什么? 你的应用程序如何降级? 有一个硬限制还是在最大值之前开始突破? 您可以绘制手柄的数量,并在超出某个特定点时重新启动服务? 有没有办法改变手柄数量的限制,以缓解这个问题? 重新启动服务修复它还是需要重新启动?