一台 Windows PC,配備 4 個內建 HDD 和 1 個透過 e-SATA 連接線連接的外部 HDD。我的主機板是較舊的 SATA 3,而不是 SATA 6。
從一個內部 HDD 傳輸到另一個 HDD,或從內部 e-SATA 磁碟機傳輸到外部 e-SATA 磁碟機時,我獲得了截然不同的檔案傳輸速度。
範例:在進行備份時,將一個大的單一檔案傳送到外部:我的速度非常慢,為 16 到 24 MB/s。稍後,它又將另一個更大的單一檔案(Linux ISO)傳輸到外部硬碟,速度達到了 125 MB/s。有時我會看到 55 MB/s,有時會看到 90MB/s。
我知道收集許多小檔案會降低傳輸速率,但是是什麼原因導致了處理這些單個大檔案時出現巨大差異(接近 8 倍)?
答案1
這是由實體硬碟的工作原理決定的。當資料寫入硬碟時,分區表會儲存儲存資料的每個檔案。
它的執行方式如下:尋找第一個可用的空閒位置,並開始在那裡寫入。當檔案大於該空間時,它將停止在那裡寫入,並在分區表中記錄該檔案的部分儲存位置。然後它會搜尋下一個可用的空閒空間並開始在那裡寫入。由於這種方式,您的硬碟將變得碎片化。 NTFS 有減少碎片的技術,但它仍然會產生碎片。
因此,查找大文件可能會導致您的硬碟磁頭到處亂跑,因為它必須到處存取文件,從而減慢讀取速度。
編輯:另外,忘了提及,當您刪除檔案時,可用空間不會重新排序,只是標記為可用空間。因此,刪除小檔案會產生寫入大檔案的小間隙。 NTFS 將嘗試盡可能地減少這種情況,但尤其是對於非常大的文件,它並不總是能做到這一點。