2012-12-28 28 views
2

我有一個IO密集型仿真程序,它在每次迭代時將仿真軌跡/數據記錄到文件中。由於仿真運行數百萬次以上,並將數據記錄到磁盤中的文件(每次覆蓋文件),我很想知道這是否會破壞硬盤,因爲大多數存儲磁盤都有一個上限寫入/擦除週期(例如,閃存盤允許高達100,000次寫入/擦除週期)。將文件分割爲多個文件是更好的選擇嗎?將文件寫入百萬次,破壞我的硬盤嗎?

回答

5

您需要認識到,對單個文件的一百萬次寫入調用可能只寫入磁盤的每個塊一次,這不會對磁盤​​或SSD設備造成任何損害。如果您將文件的第一部分覆蓋了一百萬次,那麼出現磨損的風險會更大,但有很多緩解因素。首先,如果它是一個程序的一次運行,那麼o/s很可能會將磁盤映像保留在內存中,而不會在此期間寫入磁盤 - 除非可能使用的是日記文件系統。如果它是一個日記文件系統,那麼實際寫作將分散在很多不同的塊中。

如果您設法將磁旋轉硬盤上的同一個塊寫入一百萬次,您仍然沒有將磁盤磨損的嚴重風險。

谷歌搜索'硬盤寫入週期'顯示了大量翔實的文章(更具體地說,也許是關於SSD),相關的搜索也可能會幫助你。

+0

不要忘記,磁盤本身可能有一個緩存將合併寫入。 – MJZ

1

在SSD上,對任何特定塊的寫入(或擦除週期更準確)數量有限。對於任何給定的塊,它可能超過100K到100萬,並且SSD使用「磨損加載」來避免每次對同一塊進行不必要的「寫入」。 SSD只能寫0,所以當你「復位」一點時,你必須擦除整個塊。 [人們可以在電池上放置一個逆變器,使其變成另一種方式,但是你得到一個或另一個,所以它沒有多大幫助]。

真正的硬盤更像是一個機械設備,所以與寫入同一個地方的次數沒有多大關係,它更像是頭部動作。

我不會太擔心。寫一個文件應該沒問題,不管你有一個文件還是多個文件,結果都沒有什麼影響。

+1

SLC - 100k寫入週期,MLC-3k,TLC 1k,但SLC很少見且昂貴,大多數消費驅動器是MLC和TLC。 – dtech

相關問題