【发布时间】:2010-10-31 09:17:25
【问题描述】:
我了解此问题的答案可能取决于注册表设置和 Windows 版本,如果内存不足,可能还取决于 RAM 量。为了这个问题,假设服务器有足够的 RAM (3+ GiB)。
如果一个应用程序(在这种情况下是第三方应用程序)每小时泄漏几百个句柄,那么在其他应用程序遇到问题之前,该应用程序可以泄漏多少个句柄?我所说的“麻烦”是指,例如,无法启动线程、无法打开文件等等。
我已经看到一些服务器(轻负载)在使用数万个句柄的进程(通常是数据库进程)上运行良好,因此旧的 10000 个句柄限制显然不是这里的问题。 (无论如何,这是一个每个进程的限制,所以不会影响我的应用程序,它远远低于这一点。)
有人可以回答这个问题或向我指出一些资源,这些资源可以解释在您有效用完(句柄或其他系统资源)之前,Windows 服务器将允许多少总句柄?
【问题讨论】:
-
这似乎更像是 ServerFault 类型的问题。
-
@Matthew Vines:我考虑过这一点,但由于我使用我维护的一个程序遇到了这个问题,即使第 3 方应用程序泄露了句柄,我还是决定它属于程序员网站。如果我是一名试图解决这个问题的管理员,SF 会更合适。
-
This blog post from 2011 有一些很好的经验建议,关于哪些过程不需要担心。例如。 lsass.exe 最多 30,000(32 位)或 50,000(64 位)即可。
-
我的任务管理器目前显示 16,835,261 个句柄(Win10,正常运行时间 7 天),因此
16*1024*1024或 16,777,216 的限制似乎不正确。
标签: windows performance handle