最近,我遇到了一个让我非常苦恼的问题。SVCHost 似乎正在泄漏整个商店的资源。
这是使用参数“-k netsvcs”运行的 SVCHost。
目前,正在使用的句柄约为 5,700 个。在我重新启动机器之前,句柄约为 33,000 个!这个较高的数字给我带来了很大的问题,因为我的软件无法获得所需的句柄(该软件试图创建大约 2000 个句柄)。
我完全不知道出了什么问题。如果有人能帮助我阻止这种情况发生,我将不胜感激。
我在 XP SP3 上运行。
编辑:我把这个问题追溯到 WMI 系统。我不确定问题发生的原因或方式。基本上,我使用“sc change”将其移入其自己的进程,突然一切似乎都正常了。我不完全确定发生了什么...
答案1
尝试从 SysInternals 运行 Process Explorer 来查看导致问题的 svchost 进程中发生了什么。
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
答案2
您是否运行本地 MySQL 服务器、XAMPP、WAMPP 等?如果您的答案是肯定的,那么这就是您的问题。在 MySQL 中,如果您有 InnoDB 引擎,它将带来大约 30,000 多个句柄。
答案3
如果有人感兴趣的话,我发现我在某些 WMI 使用代码中出现了一个小错误。系统无法释放 WMI 对象。修改代码后问题就解决了。
唉,我从来没想到我的代码中的泄漏会导致 svchost 中的泄漏 :(
现在,不要让我开始谈论我和同事刚刚在“戴尔控制点安全管理器”中发现的非分页池内存泄漏:(