それでハードディスクをテストしたいのですが、ブロックサイズ(オプション)とブロック数(オプション)badblocks
にどの値を使うべきかわかりません。いくつかのランダムな値を試してみましたが、プロセス速度が大幅に変わっているようです。しかし、どのように最高の価値を選ぶことができますか?-b
-c
答え1
以下は、公開された同じ質問からの関連抜粋です。バッドブロックを使用するときに正しいパラメータを選択する方法は?そしてbadblocks
最新のディスクに使用されます。
一つある利用可能な不良ブロックベンチマークスクリプトこれはあなたの目的に適しているはずです。
この-b
オプションについて:ディスクによって異なります。最新の大型ディスクには4KBのブロックがあり、その場合は-b 4096
ブロックサイズを取得できます。オペレーティングシステムで(例えばlsblk -o NAME,PHY-SeC /dev/sdX
)、これは通常、ラベルからディスク情報を読み取るか、またはディスクモデル番号をインターネットから取得することによっても得られます。-b
ブロックサイズより大きく設定すると、badblocks
結果の整合性が損なわれる可能性があります(つまり、偽の不正が発生する可能性があります。不良ブロックがまだ存在する可能性があるにもかかわらず)。-b
ドライブのブロックサイズより小さく設定すると、動作速度badblocks
に影響を与える可能性があります。わかりませんが、-b
ブロックサイズより小さい値に設定すると、ブロック全体の整合性を確認できないため、他の問題が発生する可能性があり、小さすぎると誤検出が発生する可能性があります。
この-c
オプションは、一度に検査する必要があるブロックの数に対応します。基本的には一括読み取り/書き込みです。このオプションは結果の整合性には影響しませんが、実行速度には影響しますbadblocks
。badblocks
(オプションで)指定されたすべてのNブロックに対して書き込み、読み取り、バッファリング、確認、反復を実行します-c
。低すぎると、個々のIO要求をキューに追加して処理するオーバーヘッドが原因でランタイムが通常よりもはるかに長く-c
なり、badblocks
ディスク上の各要求に対する追加のオーバーヘッドが発生する可能性があります。-c
高すぎると、badblocks
メモリが不足する可能性があります。これが発生すると、badblocks
起動後すぐに失敗します。ここで考慮すべきその他の点としては、並列実行があります。badblocks
同じディスク上の複数のパーティションで実行しているか(悪い考え)、同じIOチャネル上の複数のディスクに対して実行している場合は、利用可能なメモリを合理的に高い値に調整する必要があります。このようにして、並列実行はIO帯域幅を超えて競合せず、合理的な方法で並列化することができます。badblocks
-c
badblocks
さらに改善するために、コミュニティウィキにこの回答があります。