由注册表引起的 I/O 操作发生了不可恢复的错误修复方法
更新时间:2016年1月27日 20:15 点击:1911
服务器出现此问题:
很多使用Windows Server 2003系统的用户都会收到如下错误:
事件类型: 错误
事件来源: Application Popup
事件种类: 无
事件 ID: 333
日期: 2007-8-11
事件: 8:48:03
用户: N/A
计算机: LZ_YQ
描述:
由注册表引起的 I/O 操作发生了不可恢复的错误。 注册表将不能读取、写出或刷新包含注册表系统图像的其中一个文件。
然后系统失去响应,需要重新启动。
事件ID是333,英文日志为
Event Type: Error
Event Source: Application Popup
Event Category: None
Event ID: 333
Date: date
Time: time
User: N/A
Computer: computer name
Description: An I/O operation initiated by the Registry failed unrecoverably. The Registry could not read in, or write out, or flush, one of the files that contain the system's image of the Registry.
该错误原因是:在非分页内存或在分页的池内存不足暂时可能会出现此问题。 系统保留录制类事件,直到重新启动计算机时或相关的配置单元是卸载,即使在临时内存 insufficiency 停止。
请参看如下kb,由于该补丁处于测试阶段,因此需要通过邮件下载对应补丁:
http://support.microsoft.com/kb/970054
这问题主要是有内存耗尽出现的问题,请加大内存或者查找耗内存的元凶
服务器开始阶段性的出现死机状态了。隔一段时间就无法连接了。重启后正常,过一段时间又是同样的问题。
事件查看器中有大量的同样报错:
事件ID:2020
描述:服务器无法通过系统页面共享区来进行分配,因为共享区当前是空的。
事件ID:333
描述:由注册表引起的 I/O 操作发生了不可恢复的错误。 注册表将不能读取、写出或刷新包含注册表系统图像的其中一个文件。
尝试用以下方法解决这个问题,效果还有待观察:
1、启动注册表编辑器(开始->运行->Regedt32.exe)。
2、在注册表中找到并单击以下注册表项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\Memory Management
3、在编辑菜单上,单击添加数值,然后添加下面的注册表值(如果下面的注册表值已经存在,那么按照以下的参考值进行调整):
(1)、数值名称:PoolUsageMaximum
数据类型:REG_DWORD
基数:十进制
数值数据:40
将该值设置为 40 可以通知内存管理器在达到 PagedPoolMax 的 40% 而不是默认设置 80% 时开始修整过程。
(2)、数值名称:PagedPoolSize
数据类型:REG_DWORD
基数:十六进制
数值数据:0xFFFFFFFF
将 PagedPoolSize 设置为 0xFFFFFFFF (-1) 可为计算机分配最大的页面缓冲池以取代其他资源。
4、退出注册表编辑器。
后记(2011年7月28日):
按照以上进行调整以后,在第二天的早上,服务器照样出现死机状况。怀疑是不是服务器中毒了,进行查毒,发现服务器中毒了,清理病毒后,进行了数据库的重装。
后记(2011年7月30日):
服务器又挂掉了,网上了查了333问题,尝试按照http://support.microsoft.com/kb/970054进行处理。
第一步:下载安装补丁程序,要应用此修补程序,计算机必须安装有 Windows Server 2003 Service Pack 1 或 Service Pack 2。
微软官方下载378286_CHS_i386_zip.exe
本站下载378286_CHS_i386_zip
第二步:要启用此修补程序,请添加以下注册表项,然后将值设置为 1 或 2。
位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
名称:RegistryFlushErrorSubside
类型:REG_DWORD
数值:1 或 2
如果您将 RegistryFlushErrorSubside 注册表项的值设置为 1,则系统在发生临时内存不足时仅记录一次 333 事件。如果将该值设置为 2,则系统会触发 Stop 错误以进行诊断。
后记(2011年8月1日):
最后的解决办法,也是最无奈、最有效的解决办法。试了N种办法,都没法解决,以前好好的,怀疑是不是系统升级了什么补丁引起的问题,一怒之下,把6月份以后的系统补丁删个干净,结果世界安静了,服务器也不死机了。
很多使用Windows Server 2003系统的用户都会收到如下错误:
事件类型: 错误
事件来源: Application Popup
事件种类: 无
事件 ID: 333
日期: 2007-8-11
事件: 8:48:03
用户: N/A
计算机: LZ_YQ
描述:
由注册表引起的 I/O 操作发生了不可恢复的错误。 注册表将不能读取、写出或刷新包含注册表系统图像的其中一个文件。
然后系统失去响应,需要重新启动。
事件ID是333,英文日志为
Event Type: Error
Event Source: Application Popup
Event Category: None
Event ID: 333
Date: date
Time: time
User: N/A
Computer: computer name
Description: An I/O operation initiated by the Registry failed unrecoverably. The Registry could not read in, or write out, or flush, one of the files that contain the system's image of the Registry.
该错误原因是:在非分页内存或在分页的池内存不足暂时可能会出现此问题。 系统保留录制类事件,直到重新启动计算机时或相关的配置单元是卸载,即使在临时内存 insufficiency 停止。
请参看如下kb,由于该补丁处于测试阶段,因此需要通过邮件下载对应补丁:
http://support.microsoft.com/kb/970054
这问题主要是有内存耗尽出现的问题,请加大内存或者查找耗内存的元凶
服务器开始阶段性的出现死机状态了。隔一段时间就无法连接了。重启后正常,过一段时间又是同样的问题。
事件查看器中有大量的同样报错:
事件ID:2020
描述:服务器无法通过系统页面共享区来进行分配,因为共享区当前是空的。
事件ID:333
描述:由注册表引起的 I/O 操作发生了不可恢复的错误。 注册表将不能读取、写出或刷新包含注册表系统图像的其中一个文件。
尝试用以下方法解决这个问题,效果还有待观察:
1、启动注册表编辑器(开始->运行->Regedt32.exe)。
2、在注册表中找到并单击以下注册表项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\Memory Management
3、在编辑菜单上,单击添加数值,然后添加下面的注册表值(如果下面的注册表值已经存在,那么按照以下的参考值进行调整):
(1)、数值名称:PoolUsageMaximum
数据类型:REG_DWORD
基数:十进制
数值数据:40
将该值设置为 40 可以通知内存管理器在达到 PagedPoolMax 的 40% 而不是默认设置 80% 时开始修整过程。
(2)、数值名称:PagedPoolSize
数据类型:REG_DWORD
基数:十六进制
数值数据:0xFFFFFFFF
将 PagedPoolSize 设置为 0xFFFFFFFF (-1) 可为计算机分配最大的页面缓冲池以取代其他资源。
4、退出注册表编辑器。
后记(2011年7月28日):
按照以上进行调整以后,在第二天的早上,服务器照样出现死机状况。怀疑是不是服务器中毒了,进行查毒,发现服务器中毒了,清理病毒后,进行了数据库的重装。
后记(2011年7月30日):
服务器又挂掉了,网上了查了333问题,尝试按照http://support.microsoft.com/kb/970054进行处理。
第一步:下载安装补丁程序,要应用此修补程序,计算机必须安装有 Windows Server 2003 Service Pack 1 或 Service Pack 2。
微软官方下载378286_CHS_i386_zip.exe
本站下载378286_CHS_i386_zip
第二步:要启用此修补程序,请添加以下注册表项,然后将值设置为 1 或 2。
位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
名称:RegistryFlushErrorSubside
类型:REG_DWORD
数值:1 或 2
如果您将 RegistryFlushErrorSubside 注册表项的值设置为 1,则系统在发生临时内存不足时仅记录一次 333 事件。如果将该值设置为 2,则系统会触发 Stop 错误以进行诊断。
后记(2011年8月1日):
最后的解决办法,也是最无奈、最有效的解决办法。试了N种办法,都没法解决,以前好好的,怀疑是不是系统升级了什么补丁引起的问题,一怒之下,把6月份以后的系统补丁删个干净,结果世界安静了,服务器也不死机了。
相关文章
- 这篇文章主要介绍了vbs 读写注册表之系统启动项添加值,需要的朋友可以参考下...2020-06-30
- 这篇文章介绍的是利用C#设置自定义文件图标,然后实现双击启动的功能,文章给出了示例代码,介绍的很详细,有需要的可以参考借鉴。...2020-06-25
- 这篇文章主要介绍了C#操作windows注册表的方法,涉及C#针对注册表的读取与写入技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Delphi 常见文件处理及注册表文件的使用实例的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下...2020-06-30
- 这篇文章主要介绍了c#读写注册表示例,示例中有详细注释,大家参考使用吧...2020-06-25
- 这篇文章主要介绍了C#操作注册表的方法,结合实例形式较为详细的分析了C#针对注册表的创建、打开、读取、写入、修改、删除等技巧,需要的朋友可以参考下...2020-06-25
- Windows 操作系统的注册表包含了很多有关计算机运行的配置方式,打开注册表我们可以看到注册表是按类似于目录的树结构组织的...2020-06-25
- 这篇文章主要介绍了C#读写注册表的思路及代码,有需要的朋友可以参考一下...2020-06-25
- 以下从‘读’‘写’‘删除’‘判断’四个事例实现对注册表的简单操作...2020-06-25
- 最近做的项目需要在注册表中记录一些用户设置,方便在程序下次启动时读取设置,应用上次用户保存的设置,挺简单的...2020-06-25
- 这篇文章主要介绍了C#设置软件开机自动运行的方法,通过简单修改注册表开机启动项实现软件的开机启动功能,非常简单实用,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了c++通过读取注册表获得本机已安装软件信息的方法,大家参考使用吧...2020-04-25
- 由注册表引起的 IO 操作发生了不可恢复的错误。 注册表将不能读取、写出或刷新包含注册表系统图像的其中一个文件...2016-01-27
- 这篇文章主要介绍了C#实现读取注册表监控当前操作系统已安装软件变化的方法,涉及C#针对注册表的读取与监控技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#通过windows注册表获取软件清单的方法,涉及C#针对注册表的访问读取与遍历操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- C#下多线程读取注册表,加载至TreeView的实现代码。...2020-06-25
- 这篇文章主要介绍了C++读取注册表的实现方法的相关资料,希望通过本文能帮助到大家,让大家理解掌握实现这样的功能,需要的朋友可以参考下...2020-04-25
Windows注册表中修改UAC(用户账号控制)及批处理脚本
今天小编就为大家分享一篇关于Windows注册表中修改UAC(用户账号控制)及批处理脚本,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-04-25- 这篇文章主要介绍了c#注册表操作类,主要包括创建注册表项、读取注册表项、判断注册表项是否存在、删除注册表项、创建注册表键值、读取注册表键值、判断注册表键值是否存在、删除注册表键值等功能,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了WinForm通过操作注册表实现限制软件使用次数的方法,结合实例形式分析了WinForm操作注册表的原理、步骤与相关实现技巧,需要的朋友可以参考下...2020-06-25