不良ブロックに最適なブロックサイズとブロック数を選択するには?

不良ブロックに最適なブロックサイズとブロック数を選択するには?

それでハードディスクをテストしたいのですが、ブロックサイズ(オプション)とブロック数(オプション)badblocksにどの値を使うべきかわかりません。いくつかのランダムな値を試してみましたが、プロセス速度が大幅に変わっているようです。しかし、どのように最高の価値を選ぶことができますか?-b-c

答え1

以下は、公開された同じ質問からの関連抜粋です。バッドブロックを使用するときに正しいパラメータを選択する方法は?そしてbadblocks最新のディスクに使用されます。

一つある利用可能な不良ブロックベンチマークスクリプトこれはあなたの目的に適しているはずです。

この-bオプションについて:ディスクによって異なります。最新の大型ディスクには4KBのブロックがあり、その場合は-b 4096ブロックサイズを取得できます。オペレーティングシステムで(例えばlsblk -o NAME,PHY-SeC /dev/sdX)、これは通常、ラベルからディスク情報を読み取るか、またはディスクモデル番号をインターネットから取得することによっても得られます。-bブロックサイズより大きく設定すると、badblocks結果の整合性が損なわれる可能性があります(つまり、偽の不正が発生する可能性があります。不良ブロックがまだ存在する可能性があるにもかかわらず)。-bドライブのブロックサイズより小さく設定すると、動作速度badblocksに影響を与える可能性があります。わかりませんが、-bブロックサイズより小さい値に設定すると、ブロック全体の整合性を確認できないため、他の問題が発生する可能性があり、小さすぎると誤検出が発生する可能性があります。

この-cオプションは、一度に検査する必要があるブロックの数に対応します。基本的には一括読み取り/書き込みです。このオプションは結果の整合性には影響しませんが、実行速度には影響しますbadblocksbadblocks(オプションで)指定されたすべてのNブロックに対して書き込み、読み取り、バッファリング、確認、反復を実行します-c。低すぎると、個々のIO要求をキューに追加して処理するオーバーヘッドが原因でランタイムが通常よりもはるかに長く-cなり、badblocksディスク上の各要求に対する追加のオーバーヘッドが発生する可能性があります。-c高すぎると、badblocksメモリが不足する可能性があります。これが発生すると、badblocks起動後すぐに失敗します。ここで考慮すべきその他の点としては、並列実行があります。badblocks同じディスク上の複数のパーティションで実行しているか(悪い考え)、同じIOチャネル上の複数のディスクに対して実行している場合は、利用可能なメモリを合理的に高い値に調整する必要があります。このようにして、並列実行はIO帯域幅を超えて競合せず、合理的な方法で並列化することができます。badblocks-cbadblocks

さらに改善するために、コミュニティウィキにこの回答があります。

関連情報