我们在一台服务器上遇到了问题。它总是在 9 天后冻结,然后重新启动,然后 9 天后再次发生这种情况:服务器挂起。
我在事件日志中发现应用程序弹出 333 错误,大约每分钟出现 10 次。
333事件的描述是:
注册表发起的 I/O 操作失败且不可恢复。注册表无法读取、写出或刷新包含注册表系统映像的某个文件。
我尝试了至少六种不同的解决方法,这些解决方法在不同的网站(包括 MSKB 和 serverfault)上找到,但都没有成功。有人建议在任务管理器进程视图中添加“句柄数”列,我照做了。结果:SNMP 不断创建句柄。性能监视器向导表示,上次服务器崩溃时,该服务有超过 200 万个句柄。
我现在已经停用该服务,但原因是什么?
编辑:幸运的是,我们不依赖 SNMP 服务,因此问题已经解决了,但如果我们确实需要该服务怎么办?我该如何确定问题的原因?(以防其他人遇到同样的问题)
答案1
是的,句柄数量足够高肯定会使服务器崩溃。如果我没记错的话,SNMP 服务可以加载其他人(即不是 Microsoft)创建的扩展 DLL。我敢打赌其中一个扩展只是存在句柄泄漏,这类似于内存泄漏。这种情况确实会发生 - 这是软件问题 :(