Cha*_*esH 5 memory-leak windows-server-2012 iis-8 exchange-2013
我有一个 DAG 设置,其中 Server 2012 R2 和 Exchange 2013 运行在三台服务器和另一台用于滞后副本的服务器上。
我们似乎在所有服务器上都有句柄泄漏,它们是否托管数据库似乎并不重要。然而,让我感到奇怪的是,句柄泄漏似乎并没有占用大量资源,例如,随着句柄的增加,它并没有使用大量的内存,即使其中一个服务器的峰值达到 261076 个句柄,它也没有确实增加了它的内存使用量。
句柄泄漏者是 Windows 进程 LSASS 这也是一个令人头疼的问题,尽管我正在使用 Perfmon 进行监控并且我使用过 RAMmap、Process Explorer 等。事实证明,由于 LSASS 本身不是原因,因此很难进行故障排除无论是“使用”LSASS 都是问题所在。
我在性能故障排除方面非常了解,但只有使用 .NET 等进行内部编码。这个盒子上的所有东西都是微软的。
所以我想我的问题是:
Handle Leaks 和 Memory Leaks 有什么区别 我可以在没有 Memory Leak 的情况下有 Handle Leaks 吗?如果是这样,纯 Handle Leak 超时的危险是什么?
我还能做些什么来解决这个问题?我打算安装 SDK 并使用 UMDH 和 Gflags 来拍摄内存快照,但它的增长不是很快,所以这会有点痛苦。
得到了很多信息,但不确定什么是相关的,所以你需要问的任何问题我都可以提供。
谢谢,
查尔斯
句柄泄漏是内存泄漏的一种特殊情况。您正在从狭义定义的池中泄漏内存:可用句柄集。通常,句柄是内存指针,在 64 位计算机上将占用 8 个字节。所以 261076 处理 8 个字节就是 2039kB,仅差 2meg。对于现代机器来说,这只是零钱。
但您需要注意的问题是:当句柄用完时会发生什么?您的应用程序性能如何下降?是否存在硬性限制,或者是否在达到最大值之前就开始突破?您能绘制出句柄数并在超过某个点时重新启动服务吗?有没有办法改变句柄数量的限制来缓解这个问题?重新启动服务可以解决问题还是需要重新启动?
归档时间: |
|
查看次数: |
687 次 |
最近记录: |