SATA硬碟傳檔DELAY~~



贊助商連結


mirage56
2004-08-17, 09:49 AM
各位大大好,最近買了一顆SATA 200G硬碟,格式化成NTFS後,去複製原本SATA硬碟裡面的東西(分別是97GB,76GB NTFS),可是常常複製到一半會完全停止(連滑鼠都不動但沒有當喔),過大約1.2分鐘又開始繼續複製並且完成工作,而且不論當時複製的檔案是大是小,都會有這種情形;我所有的驅動程式都裝了,不知道爲什麼會有這樣的問題,這裡的大大有碰過類似的情況嗎?該怎麼解決?謝謝.

贊助商連結


raytracy
2004-08-17, 10:02 AM
先把「工作管理員」叫出來, 放在 CPU 和 Memory 的狀態顯示上, 看看傳檔時時, 這兩者的狀況如何?....

mirage56
2004-08-17, 12:27 PM
最初由 raytracy 發表
先把「工作管理員」叫出來, 放在 CPU 和 Memory 的狀態顯示上, 看看傳檔時時, 這兩者的狀況如何?....

我已經傳完檔也刪除原本的硬碟了,還要再傳回去一次嗎?;)

raytracy
2004-08-17, 01:31 PM
嗯, 我剛剛也想到這個好笑的問題了....:D

沒關係, 那就用猜的吧. 因為 HD 的 Buffer 有限, 而 HD 寫入的速度又遠低於 CPU 的傳輸速度, 所以當大量資料寫入時, HD 來不及寫, Buffer 滿了, OS 只好改用 Memory cache, 可是連 cache 也滿了時, 資料沒有地方擺了, 這時只好等 HD 寫完, 空出 Buffer 或 cache, 才能繼續寫入, 所以會有停頓的現象.

不過, 這樣好像無法解釋您一次停個一兩分鐘的疑問. 因為 HD 也是持續在寫, 只要停下來幾秒鐘, 就一定會有空檔可以繼續再塞資料, 怎麼可能一次停那麼久?

或許可以這樣猜測: 因為用到了大量的 OS 自己的 Memory cache, 當 HD 寫丸資料, 這些 cache 被釋放出來之後, 造成許多不連續的記憶塊, 觸發 OS 強迫啟動本身內建的「垃圾收集」機制(Garbage collection, 這是一種 OS 重新整理記憶體的方法), 通常 GC 都會執行很久, 因為要做記憶塊的搬移, 而且搬移期間會動到已經被程式使用的記憶塊, 所以所有東西都必須停下來, 等 GC 做完才能再繼續. 這個理由比較能解釋您的現象.

另外有一種可能, 則屬於 non-preemptive mutitasking 的問題. 雖然 XP 宣稱他是使用 preemptive mutitasking (先佔式多工), 不會有資源鎖定問題, 但在處理 I/O 上, 小弟個人覺得好像還是會發生這種問題. 而 IDE/ATA HD 本身需要依賴 CPU 來處理所有動作, 不像 SCSI 可以「射後不管」(Fire and Forget, 軍事用語, 指投射物有自行導航能力, 無須發射者介入引導), 所以當資料量大時, CPU 忙著幫 HD 處理各種動作, 而又因 OS 沒有設計成完全的 preemptive mutitasking, 所以這個動作一旦啟動, 就必須等到 HD 做完才能做別的事情. 不過, 照理說, 這樣停頓的時間應該很短, 不會超過幾十秒, 所以也不能完全解釋您的現象.

mirage56
2004-08-17, 03:26 PM
就因為這樣所以才覺得很疑惑,雖然仍不是很了解原因出在哪,
但目前新硬碟用到現在搬運大檔(1~4GB)並沒有之前的情況,
覺得可能跟兩顆舊硬碟有關;無論如何,還是謝謝您唷:)



最初由 raytracy 發表
嗯, 我剛剛也想到這個好笑的問題了....:D

沒關係, 那就用猜的吧. 因為 HD 的 Buffer 有限, 而 HD 寫入的速度又遠低於 CPU 的傳輸速度, 所以當大量資料寫入時, HD 來不及寫, Buffer 滿了, OS 只好改用 Memory cache, 可是連 cache 也滿了時, 資料沒有地方擺了, 這時只好等 HD 寫完, 空出 Buffer 或 cache, 才能繼續寫入, 所以會有停頓的現象.

不過, 這樣好像無法解釋您一次停個一兩分鐘的疑問. 因為 HD 也是持續在寫, 只要停下來幾秒鐘, 就一定會有空檔可以繼續再塞資料, 怎麼可能一次停那麼久?

或許可以這樣猜測: 因為用到了大量的 OS 自己的 Memory cache, 當 HD 寫丸資料, 這些 cache 被釋放出來之後, 造成許多不連續的記憶塊, 觸發 OS 強迫啟動本身內建的「垃圾收集」機制(Garbage collection, 這是一種 OS 重新整理記憶體的方法), 通常 GC 都會執行很久, 因為要做記憶塊的搬移, 而且搬移期間會動到已經被程式使用的記憶塊, 所以所有東西都必須停下來, 等 GC 做完才能再繼續. 這個理由比較能解釋您的現象.

另外有一種可能, 則屬於 non-preemptive mutitasking 的問題. 雖然 XP 宣稱他是使用 preemptive mutitasking (先佔式多工), 不會有資源鎖定問題, 但在處理 I/O 上, 小弟個人覺得好像還是會發生這種問題. 而 IDE/ATA HD 本身需要依賴 CPU 來處理所有動作, 不像 SCSI 可以「射後不管」(Fire and Forget, 軍事用語, 指投射物有自行導航能力, 無須發射者介入引導), 所以當資料量大時, CPU 忙著幫 HD 處理各種動作, 而又因 OS 沒有設計成完全的 preemptive mutitasking, 所以這個動作一旦啟動, 就必須等到 HD 做完才能做別的事情. 不過, 照理說, 這樣停頓的時間應該很短, 不會超過幾十秒, 所以也不能完全解釋您的現象.

s900221
2004-08-17, 11:16 PM
應該不會是南橋晶片在作祟吧:D :D

mirage56
2004-08-18, 12:24 AM
我的主機板是8KNXP UKTRA-64,怎麼樣才知道有沒有裝南橋驅動呢?


最初由 s900221 發表
應該不會是南橋晶片在作祟吧:D :D