Hard-Disk

如何為壞塊選擇塊大小和塊數的最佳值?

  • March 26, 2021

我想用 測試我的硬碟badblocks,但我不知道應該為塊大小(-b選項)和塊數(-c選項)使用哪些值。我隨機嘗試了一些值,似乎它們可以顯著改變過程的速度。但是我怎樣才能選擇最優值呢?

以下是相同問題的相關摘錄,已在How do I choose the right parameters when using badblocks?在現代磁碟上使用。badblocks

有一個可用的 badblocks 基準腳本應該適合您的目的。

關於-b選項:這取決於您的磁碟。現代的大型磁碟有 4KB 塊,在這種情況下,您應該設置-b 4096. 您可以從作業系統(例如)獲取塊大小lsblk -o NAME,PHY-SeC /dev/sdX,通常也可以通過從標籤上讀取磁碟資訊或通過Google搜尋磁碟的型號來獲得。如果-b設置為大於您的塊大小,則badblocks結果的完整性可能會受到損害(即您可能會得到假陰性:當它們可能仍然存在時沒有發現壞塊)。如果-b設置為小於驅動器的塊大小,則badblocks執行速度可能會受到影響。我不確定,但設置可能還有其他問題-b比你的塊大小更小的東西,因為它沒有驗證整個塊的完整性,如果它設置得太小,仍然有可能得到假陰性。

-c選項對應於一次應檢查多少塊。基本上是批量讀/寫。此選項不會影響結果的完整性,但會影響badblocks執行速度。badblocks將(可選)寫入,然後讀取,緩衝,檢查,按 . 指定的每 N 個塊重複-c。如果-c設置得太低,這將使您的badblocks執行時間比平時長得多,因為排隊和處理單獨的 IO 請求會產生成本,並且磁碟還可能會為每個請求帶來額外的成本。如果-c設置得太高,badblocks可能會耗盡記憶體。如果發生這種情況,badblocks啟動後會很快失敗。此處的其他注意事項包括並行badblocks執行:如果您正在執行badblocks針對同一個磁碟上的多個分區(壞主意),或針對同一 IO 通道上的多個磁碟,您可能希望-c在記憶體可用的情況下調整到相當高的值,badblocks這樣並行執行就不會爭奪 IO 頻寬並且可以以一種理智的方式並行化。

我有這個答案作為社區 wiki 以進一步改進

引用自:https://unix.stackexchange.com/questions/202541