ハードドライブを実際のサイズよりも小さなパーティションに分割すると、客観的にパフォーマンスが向上しますか?


21

私は2016年に80GBのHDDで作業していましたが、実際にはほとんどの場合きびきびしていました。そして、1TB HDDとはるかに大きなRAMと高速CPUを備えた新しいラップトップを購入した後、HDDは新しい世代のHDDでしたが実際には古いものよりもはるかに遅く感じました(RPM速度はわかりません)。

OSとメインのWebブラウザ以外には何も必要ないので、最近1TBのHDDを80GBのプライマリパーティションに分割し、残りのスペースを未割り当てのままにすることにしました。

それを実行した後、実際には何らかの理由で以前よりずっときびきびと感じました。ファイルマネージャは非常に高速に実行され、HDDの全体的なパフォーマンスは非常に良くなります。それが単なるプラセボなのか、それともSSD時代以前に行われていた合法的なものなのかを知りたい。

「ディスクショートストローク」について何かを読みましたが、それが私がしたことと同じかどうかはわかりません。おそらく、私のBIOは最初にエッジのスペースを分割しますか?これについてのあなたの説明を知りたいです。


6
それは興味深い質問ですが、2016年に購入したHDDのストレージ容量が80GBしかなかった場合、RPMは大したことになるでしょうか?これはおそらくハイブリッドHDD / SSDであるか、何らかの高RPMドライブ(少なくとも10,000RPM、おそらくそれ以上)であり、どちらもパフォーマンスに大きな影響を与えます。
Cestarian

1
@Cestarianそれは良い点です。現在、2015年から比較的ローエンドのデスクトップを使用していますが、80 GB SSDと1TB HDDが付属しています。前回80 GBのHDDを購入したのは2003年頃でした。そのため、前述の80 GB HDDはHDDではなくSSDであった可能性があります。
カスペルド

回答:


29

はい、あなたがしていることは「ショートストローク」と呼ばれています。

ドライブのヘッドの動きを制限することにより、シークパフォーマンスが向上します。ハードドライブのパフォーマンスは、主に3つの要因によって制限されます。シーク時間(ヘッドを目的のシリンダーに出し入れする時間)、回転待ち時間、そして実際のデータ転送速度です。

原則

最新の3.5インチハードドライブの平均シーク時間は9〜10ミリ秒です。「シーク」が完了すると、ドライブは目的のセクターの開始がヘッドの下に来るのを待つ必要があります。平均回転待ち時間は、ドライブが完全に1回転するのにかかる時間の半分にすぎません。7200 rpmドライブは1秒あたり120回転で回転するため、1回転には1/120秒かかります。したがって、1回転の半分(平均回転待ち時間)は1/240秒、つまり4.2ミリ秒です。(これは7200 rpmのハードドライブごとに同じであることに注意してください。)したがって、データの転送を開始する前に、平均で約13ミリ秒かかります。

データ転送速度は、ドライブの仕様に記載されているとおりです。最近のドライブでは、これはほとんどの場合、SATA 3などの物理インターフェイスがサポートするものよりもいくらか低くなります。I / O操作のデータ転送部分は通常、最小の期間部分であり、最新のインターフェースではほとんど無視できることに注意してください。古いATA33ドライブでも、4KiBの転送は1.2ミリ秒で完了しました。

シーク時間の仕様は、さまざまな頭の動きの距離に対して可能なシーク時間の平均です。あるシリンダーから隣接するシリンダーへのシークが、最も内側から最も外側へのシークよりもはるかに短いことがわかります。(「シリンダー」は、単一のヘッド位置からアクセス可能なすべてのトラックの集合です。)これらは両方とも非典型的な状況です。HDパフォーマンスの前提は、アクセスされるデータがドライブ全体にかなりランダムに分散されることです。したがって、通常引用される約9〜10ミリ秒のシーク時間は、さまざまなシーク距離の平均です。最も詳細な仕様書には、平均に加えて、シリンダー間(「トラック間」というラベルが付いていることが多い)、つまり隣接するシーク時間と最大(エンドツーエンド)の両方が記載されているメーカーもあります。

大規模な「シーケンシャル」転送で行われたドライブベンチマークを見ると、シーク時間と回転待ち時間の両方を最小限に抑え、ドライブのオンボードキャッシュの効果を最大化するデータアクセスパターンでテストが行​​われています。つまり、単一の大きなファイルを最初から最後まで順番に読み取ります。たとえば、一度に64 KiBの読み取りを使用し、ファイルが連続する1ブロックの範囲を占有します。

ショートストロークはどのように機能しますか?

ドライブよりもはるかに小さいパーティションを作成し、使用するだけで、すべてのデータを狭い範囲のシリンダー(ヘッド位置)に保持します。これにより、可能な最大シーク時間が短くなるため、平均は小さくなります。回転の待ち時間や転送速度には役立ちません。

それが役立つもう1つの方法は、ドライブの使用を最大容量のシリンダーに維持することです。現代のHDは「ゾーンビット記録」を使用します。つまり、内側のトラックよりも外側のトラックの方がトラックごとに多くのセクターがあります。そのため、データが外側のシリンダーにある場合、ヘッドをそれほど動かさずに、より多くのデータにアクセスできます。

それは本当に機能しますか?

多くの異なる技術愛好家のサイトがこれをテストしました。たとえば、Tom's Hardwareのこの記事を参照してください。結果は印象的です。1秒あたりのI / Oレートがほぼ2倍になります。

しかし、これは大きなハードドライブを購入し、ドライブの容量のほんの一部を使用することで行われました。これにより、GBあたりのコストが大幅に増加します。

ただし、回避策があります。あなたは決してする必要はありませんドライブの残りの部分を使用して、速度を向上させます。システムがメインパーティションに頻繁にアクセスしている場合は、毎日使用しないようにする必要があります。私たちのほとんどは、多くのファイル(OS、アプリ、アプリが動作する一部のデータ)にアクセスし、アクセスするデータはそれほど多くありません。たとえば、ドライブの残りの部分を何らかのアーカイブストレージに使用したり、音楽やビデオなどのマルチメディアファイルに使用したりできます。通常、メディアの再生は、1つのファイルへのまれなシーケンシャルアクセスであり、通常はそのマシンで他のことをあまり行いません。したがって、この方法でドライブを使用しても、すべてが1つの大きなパーティションに分散している場合よりもメディアの再生が悪くなることはありません。

しかし、良いアイデアですか?

一方、 THが実行したテストは総合的なベンチマークであり、それらの結果を得るために、ディスク容量の非常に高い割合を捨てました。最新のオペレーティングシステムは、HDパフォーマンスを最適化するためにかなりの作業を行います。1つの例は、Windowsの「ファイル配置の最適化」です。これは、この回答へのコメントで説明されています。そして、「ショートストローク」はこれをあまり効果的にしません。誰かが合成ベンチマークで印象的な結果を得たからといって、「ショートストローク」が必ずしも良いことだとは限りません。

考えてみてください。最近の1 TBのハードドライブは約50ドルです。ただし、使用しているのは80 GBのみです。あなたはOSとブラウザだけが必要だと言います...まあ、63ドルでSamsung 128 GB SSDを手に入れることができます。 HD。または、50ドルで240 GBの容量のSanDisk SSDを入手できます。それは、50ドルの1テラバイトハードドライブのほとんどすべてを使用しないよりも良い取引のようです。

ところで

btw: "BIOS"(またはUEFI)はパーティションを作成せず、パーティションの場所とは関係ありません。これは、オペレーティングシステムのパーティション分割ユーティリティによって異なります。私が聞いたすべてのOSは、最初に外側のシリンダーを使用します。たとえば、Windowsのディスク管理ユーティリティでは、各ディスク内のドライブパーティションのグラフィカル表示に、左側に最も外側のシリンダーがあるレイアウトが表示されます。AOMEIディスクパーティションユーティリティは同じことを行います。

ASIDE-TRUE STORY:5.25インチのフォームファクターのハードドライブのサイズが数十MBから数百MBだった頃、CDCと呼ばれる会社には「Wren」シリーズと呼ばれる一連のドライブがありました。(この名前は、間違いなく、少し前の時代のはるかに物理的に大きな富士通の「イーグル」ドライブでの平手打ちでした。)しばらくの間、彼らは少し高性能なモデル「WrenRunner」も持ちました。容量は約90%、コストは20%増加し、平均アクセス時間は1ミリ秒程度削られました。いくつかの実験の後、「WrenRunner」はドライブのファームウェアで最初と最後のいくつかのトラックがロックアウトされた単なる「レン」であることが明らかになりました。つまり、「短いストローク」で安価なレンから同じパフォーマンスと容量を得ることができますが、その用語は使用しませんでした。


あなたの説明は合理的ですが、「はい」は偽物のようです。使用可能なストレージの5%または10%のみを使用する場合、適切なOSのファイルシステムドライバーは、ディスクの最初の5%または10%からストレージをほぼまたは完全に割り当てます。それを超えて割り当てると、ひどく断片化された空き領域の使用を回避し、それによりパフォーマンスが向上します。物事を分離するためではなく、「パフォーマンスのために」ドライブをパーティション分割することは、とんでもないアイデアです。
R ..

@R ..またはそれは最後の長いドライブを作成、ディスクの先頭に書き込みを繰り返しを避けるためにかもしれないが、私はそれはあなたが非常に頻繁にデータを交換する場合にのみ、だと思う
誰か

1
@R ..えーと...数ヶ月または1年使用された後、大きなHDの使用量分布を見たことがあれば、別のアイデアがあるかもしれません。
ジェイミーハンラハン

2
一方、Windowsのファイル配置の最適化があります。ブート中に時間内に接近するexeとdllの一部を意図的に移動し、ディスク上で接近します。そして、これはこのようなものを単一の連続したスペースに移動しようとするため、そのようなスペースが見つかる場所、つまり空きスペースの多いドライブ上でより効果的です。(当然、WindowsはSSDでこれを行うことを気にしません。)「はい、HDパフォーマンスを改善します」という答えはベンチマークではまだ有効であると結論付けます。しかし、それが必ずしも良いことを意味するわけではありません。
ジェイミーハンラハン

2
Windowsファイル配置の最適化に関する記事を次に示します。もちろんWindowsの内部ソロモン、Russinovich氏によるらは「馬の口」参照です。 autoitconsulting.com/site/performance/...
ジェイミー・ハンラハン

3

多くの要因があり、厳密に標準的な答えがあるかどうかはわかりません。ただし、データが高度に断片化されていない限り、回転ディスクの外側にある小さなパーティションでは、シークおよびシーケンシャル転送が高速になる場合があります。

回転ディスクでは、外側のシリンダーのセクターが多く、内側のシリンダーよりも速く回転します。最近の多くのファイルシステムは、断片化を減らすためにファイルのセクターを連続して配置しようとします。これは、多くの場合、大きなパーティションが時間とともに内部シリンダーをますます使用することを意味します。

パーティションが小さいと、ファイルシステムがより多くのデータを外側のシリンダーに配置するように強制され、データが軽く断片化されていても、読み取りヘッドの下でより速く移動する可能性があります。

hdparmなどのLinuxツールを使用して、さまざまなパーティションサイズでランダムアクセスとシーケンシャルパフォーマンスについてドライブをテストできますが、実用的な答え以上のものが必要な場合は、フラグメンテーションを考慮したより高度なツールを使用できます。

ドライブの用途によっては、ディスク容量を浪費するメリットは廃棄物自体によって相殺される可能性があります。断片化下でのランダムアクセスまたはパフォーマンスが重要な場合、ソリッドステートドライブ(SSD)への切り替えは、おそらく長期的にはより意味があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.