![Windows 7 64位系统进程打开过多句柄](https://linux22.com/image/1569912/Windows%207%2064%E4%BD%8D%E7%B3%BB%E7%BB%9F%E8%BF%9B%E7%A8%8B%E6%89%93%E5%BC%80%E8%BF%87%E5%A4%9A%E5%8F%A5%E6%9F%84.png)
刚刚发现我的 Windows 7 64 位在约 60 分钟内打开的句柄数量异常高(>180000),但 chrome(4 个选项卡)和其他进程都正常 - 用 Process Explorer 检查了它们。不寻常的是,句柄数量约为 40000,然后跳到 ~145k,在我重新启动系统之前,它们已经超过 180k。操作系统加载后,再次观察系统进程,启动相同的 chrome 选项卡和其他进程。发现系统进程(PID 4)打开的句柄数量缓慢增加(每秒 1 到 4 个句柄,大多为 1/秒),而其他进程完全正常,它们打开句柄并关闭它们。在达到这些 >150k 个句柄后,我仍然看不到其他有这么多句柄的进程。唯一的一个是系统进程本身,手动将所有进程的所有句柄相加,得到的数字与系统相比要少很多 - <30k。在这次观察中没有检测到任何缓慢的性能(可能是由于 8c/16t 处理器),包括可用的 RAM 足够(总共 16.3GB,缓存 4.1GB,分配 12.2GB,可用 8.5GB)
那么,如何检测导致这么多句柄的原因?请注意,已经尝试过并且无法使用 WinDbg 或 Gflags - WinDbg 无法连接到系统(访问被拒绝),而 Gflags 找不到系统的映像文件(我认为这是正常的)
答案1
幸运的是,我设法找到了句柄数量如此之高的原因。它是 Comodo Internet Security 10.0.2。停止所有与 CIS 相关的服务和进程后,系统停止泄漏句柄。泄漏的句柄来自File
指向 的类型HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\CmdAgent\CisConfigs\0
。然后在卸载它之前,我删除了整个CmdAgent\...
密钥。下载了最新版本的 CIS 11,现在一切正常。请注意,SYSTEM 拥有 150k 或更多句柄实际上会增加非常明显的微卡顿感,主要是在机器上启动的游戏和虚拟机中。