ハードドライブを再フォーマットする場合、後で書き込みパフォーマンスを「改善」するものはありますか、それとも心配する必要はありませんか?今日のスーパーユーザーのQ&A投稿には、好奇心旺盛な読者の質問に対する回答があります。
今日の質疑応答セッションは、コミュニティ主導のQ&AWebサイトのグループであるStackExchangeの下位区分であるSuperUserの好意で行われます。
写真提供: クリス・バニスター(Flickr) 。
質問
スーパーユーザーリーダーのBretteteteは、ハードドライブにゼロを入力すると書き込みパフォーマンスが向上するかどうかを知りたいと考えています。
私は99パーセントいっぱいだった2TBのハードドライブを持っています。パーティションを削除しました fdisk 次のようにフォーマットしました ext4 。私の知る限り、ハードドライブにあった実際のデータはまだ存在していますが、パーティションテーブルは再割り当てされました。
私の質問は、ハードドライブがクリーンだった場合、それ以上の書き込みアクションの書き込みパフォーマンスが向上するでしょうか? 「クリーン」とは、ハードドライブをゼロで埋めることを意味しますか?何かのようなもの:
- dd if = / dev / zero of = / dev / sdx bs = 1 count = 4503599627370496
ハードドライブをゼロで埋めると、書き込みパフォーマンスが向上しますか?
答え
スーパーユーザーの寄稿者であるMichaelKjörlingが私たちに答えを持っています。
いいえ、パフォーマンスは向上しません。 HDDはそのようには機能しません。
まず、特定のデータを回転ドライブに書き込むと、 変身 に 磁区 それは実際にあなたが書いているビットパターンとは非常に異なって見えるかもしれません。これは、プラッターから読み取られたパターンにある程度の変動がある場合に同期を維持するのがはるかに簡単であるため、部分的に行われます。たとえば、「ゼロ」または「1」の値の長い文字列は、同期を維持することを非常に困難にします。 26,393ビットまたは26,394ビットを読みましたか?ビット間の境界をどのように認識しますか?
これを行うための技術は、時間とともに進化してきました。たとえば、見上げる 修正周波数変調 、MMFM、 群符号記録 、およびのより一般的な技術 ランレングス限定エンコーディング 。
次に、セクターに新しいデータを書き込むと、プラッターの関連部分の磁区が単純に目的の値に設定されます。これは、以前の磁区がその特定の物理的な場所に「あった」かどうかに関係なく行われます。プラッターはすでに書き込みヘッドの下で回転しています。最初に現在の値を読み取り、次に新しい値が異なる場合にのみ新しい値を書き込みます。これにより、各書き込みに2回転(または各プラッタに追加のヘッド)が必要になり、書き込みレイテンシが2倍になるか、ドライブの複雑さが大幅に増加し、コストが増加します。
ハードドライブのシーケンシャルI / Oパフォーマンスの制限要因は、各ビットが読み取り/書き込みヘッドの下を通過する速度であるため、これはユーザーに何のメリットも提供しません。余談ですが、ランダムI / Oパフォーマンスの制限要因は、読み取り/書き込みヘッドを目的のシリンダーに配置して、目的のセクターがヘッドの下に到達する速度です。 SSDがランダムI / Oワークロードで非常に高速になる主な理由は、SSDがこれらの要因の両方を完全に排除するためです。
によって指摘されたように ジェイクグールド 、あなたがしたいかもしれない1つの理由 上書き いくつかの固定パターン(すべてゼロなど)を持つドライブは、以前に保存されたデータの残りがないことを保証することです 回復 、どちらか 故意に または誤って。ただし、上記の理由により、これを行っても、今後のハードドライブのパフォーマンスに影響はありません。
説明に追加するものがありますか?コメントで音を立ててください。他の技術に精通したStackExchangeユーザーからの回答をもっと読みたいですか? ここで完全なディスカッションスレッドをチェックしてください 。