gembin

          OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

          HBase, Hadoop, ZooKeeper, Cassandra

          Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

          There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

          About Me

           

          Windows系統變慢的原因---自行關閉硬盤DMA模式

                  硬盤的DMA模式大家應該都知道吧,硬盤的PATA模式有DMA33、DMA66、DMA100和DMA133,最新的SATA-150都出來了!一般來 說現在大多數人用的還是PATA模式的硬盤,硬盤使用DMA模式相比以前的PIO模式傳輸的速度要快2~8倍。DMA模式的起用對系統的性能起到了實質的 作用。以前有很多文章介紹過如何打開DMA模式,我在這里也就不多說了。

          但發現一個新的“問題”——Windows 2000、XP、2003系統有時會自行關閉硬盤的DMA模式,自動改用PIO模式運行!這就造成在使用以上系統中硬盤性能突然下降,其中最明顯的現象 有:系統起動速度明顯變慢,一般來說正常Windows XP系統啟動時那個由左向右運動的滑條最多走2~4次系統就能啟動,但這一問題發生時可能會走5~8次或更多!而且在運行系統時進行硬盤操作時明顯感覺變 慢,在運行一些大的軟件時CPU占用率時常達到100%而產生停頓,玩一些大型3D游戲時(比如極品飛車6)畫面時有明顯停頓(很多人這時以為是自己的顯 卡問題,當然如果你使用的是三年前的顯卡玩這些游戲是有點老了,但如果你用的是今年才買的GF顯卡那就不是它的問題了),出現以上問題時大家最好看看自己 硬盤的DMA模式是不是被Windows 系統自行關閉了。查看自己的系統是否打開DMA模式:

          1. 雙擊“管理工具”,然后雙擊“計算機管理”;

          2. 單擊“系統工具”,然后單擊“設備管理器”;

          3. 展開“IDE ATA/ATAPI 控制器”節點;

          4. 雙擊您的“主要IDE控制器”;

          5. 點擊“高級設置”。

          看到“設備0”,下面的傳輸模式應設為“DMA(若可用)”,再下面“當前傳輸模式”,如果是“Ultra DMA Mode *(*為數字,DMA33為2,DMA66為4,DMA100為5、DMA133為6)”,那么你的系統正常,但如果以前你自己設的是“Ultra DMA Mode 6”又沒有改動,而現在是“Ultra DMA Mode 4”或“Ultra DMA Mode 2”更或者是“PIO 模式”而且改不過來!可能就是系統自行關閉了DMA模式了。

          分析問題:

          好了,先來說說問題是如何產生的。在Windows 2000/XP/2003中有這樣一個設定: Windows IDE/ATAPI 端口驅動程序 (Atapi.sys) 累積收到總共6個超時或循環冗余檢驗 (CRC) 錯誤后,驅動程序將把通信速度(傳送模式)從最快的直接內存訪問 (DMA) 模式分步驟降為較慢的 DMA 模式。如果驅動程序繼續收到超時或 CRC 錯誤,則驅動程序最終將把傳送模式降為最慢的模式(PIO 模式)。 問題就在這里!一般來說一個正常的硬盤很少會有超時或循環冗余檢驗 (CRC) 錯誤,但是當我們使用這些系統里的掛起(也有叫休眠)并恢復計算機后就很容易造成超時或循環冗余檢驗 (CRC) 錯誤。因為系統設定的超時值為4秒,當系統向 ATA 磁盤發出讀取請求時如果硬盤回應時間超過 4 秒的超時值時才會產生超時或循環冗余檢驗 (CRC) 錯誤,但因為系統在掛起(也有叫休眠)時硬盤是在停轉狀態中,恢復計算機時硬盤有個從停止到運動的過程,這就很容易造成大部分硬盤回應時間超過 4 秒的超時值。也就是說當我們使用計算機掛起6次后系統就會把通信速度(傳送模式)從最快的直接內存訪問 (DMA) 模式分步驟降為較慢的 DMA 模式。如果掛起6次以上則驅動程序最終將把傳送模式降為最慢的模式(PIO 模式)。這就是Windows 系統突然變慢的原因。

          解決問題:

          若要為受影響的設備重新啟用典型DMA或更快DMA的傳送模式,請執行以下操作:

          1. 雙擊“管理工具”,然后雙擊“計算機管理”;

          2. 單擊“系統工具”,然后單擊“設備管理器”;

          3. 展開“IDE ATA/ATAPI 控制器”節點;

          4. 雙擊您要為其恢復典型 DMA 傳送模式的控制器;

          5. 單擊“驅動程序”選項卡;

          6. 單擊“卸載”。

          當此過程完成后,重新啟動您的計算機。當 Windows 重新啟動后,將重新枚舉硬盤控制器,同時與該控制器相連的每個設備的傳送模式將重置為默認值。

          但這樣只是把硬盤設備的傳送模式重置為默認值,當我們再使用掛起系統時系統又會自行關閉DMA模式!所以我們還要做以下操作:

          1. 單擊“開始”,單擊“運行”,鍵入 Regedit,然后單擊“確定”。

          2. 在注冊表中找到并單擊以下項:

          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0001



          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0002

          3. 在“編輯”菜單上,指向“新建”,然后單擊“DWORD 值”。

          4. 鍵入 ResetErrorCountersOnSuccess,然后按 Enter 鍵。

          5. 在“編輯”菜單上,單擊“修改”。

          6. 鍵入 l,然后單擊“確定”。

          7. 按照下列步驟操作,然后退出注冊表編輯器:

          注意:上面注冊表最后的項“{4D36E96A-E325-11CE-BFC1-08002BE10318}”列出的帶有“0001”編號的子項對應 于一臺僅有一個 IDE 控制器的計算機的主要 IDE 通道和次要 IDE 通道。如果您的計算機有兩個 IDE 控制器,則對于每個控制器,主要 IDE 通道和次要 IDE 通道的帶有編號的子項分別是:“0001、0002、0003、0004、0005、0006……”。

          為檢查是否找到了正確的子項,請檢查子項的 DriverDesc 值是包含字符串值“主要 IDE 通道”,還是包含字符串值“次要 IDE 通道”。

          建立以上注冊表鍵值的目的是:

          在Windows中,使系統向 ATA 磁盤發出讀取請求時的 4 秒的超時值更改為 10 秒。還實現了一種較不嚴格的變通策略以在發生超時錯誤和 CRC 錯誤時降低傳送模式(從較快的 DMA 模式到較慢的 DMA 模式,最終降為 PIO 模式)。以前的情況是,在每當累積發生的超時錯誤或 CRC 錯誤的總數達到 6 次時,IDE/ATAPI 端口驅動程序 (Atapi.sys) 將降低傳送模式。當我們建立以上注冊表鍵值實現新的策略后,Atapi.sys 僅在連續發生 6 次超時錯誤或 CRC 錯誤后才降低傳送模式。

          這一新的策略實現后將大大降低系統降低或關閉DMA傳送模式的機會。現在我們可以安心地使用掛起系統和高性能的DMA硬盤模式,再也不會發生系統性能突然下降的情況了。

          posted on 2008-07-25 14:16 gembin 閱讀(628) 評論(0)  編輯  收藏 所屬分類: 其他

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊

          收藏夾(9)

          Adobe

          Android

          AS3

          Blog-Links

          Build

          Design Pattern

          Eclipse

          Favorite Links

          Flickr

          Game Dev

          HBase

          Identity Management

          IT resources

          JEE

          Language

          OpenID

          OSGi

          SOA

          Version Control

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          free counters
          主站蜘蛛池模板: 成武县| 织金县| 兴海县| 黄石市| 博白县| 黔西| 泰和县| 剑河县| 屯留县| 景德镇市| 敦煌市| 大城县| 抚顺县| 铁岭县| 新沂市| 太仓市| 绥化市| 正镶白旗| 克东县| 石狮市| 时尚| 景宁| 垫江县| 乐平市| 汾阳市| 宜君县| 池州市| 宝清县| 达州市| 舒城县| 米林县| 长岭县| 菏泽市| 曲松县| 肇源县| 宣恩县| 深圳市| 临夏县| 岳普湖县| 巴马| 河北区|