由注冊表引起的 I/O 操作發生了不可恢復的錯誤修復方法
2024-07-09 22:40:42
供稿:網友
服務器出現此問題:
很多使用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 錯誤以進行診斷。