Windows 8デフラグツール?


17

Windows 8のdefragコマンドには、次のような新しいオプションがあるようです。

/K 指定されたボリュームでスラブ統合を実行します。

これが英語で何を意味するのか知っていますか?

回答:


7

このPDFには、NTFSの新機能とともに、この説明が含まれているようです。

それは言います:

  • スラブの統合

    • ファイルを効率的にデフラグして、割り当てられたスラブの数を最小限に抑えます

    • スラブは、シンプロビジョニングされたボリューム上の割り当ての単位です。

    • 次のIOCTL_STORAGE_QUERY_PROPERTYプロパティIDのリクエストのサポートが必要です。StorageDeviceLBProvisioningProperty

      • ボリュームのスラブサイズを取得します

3

Windows 8のデフラグツールのコンテキストでこれが何を意味するかを具体的に説明するものは見つかりませんでした。ただし、「スラブ統合」とは一般に、同じ割り当てサイズに切り上げられたオブジェクトが一緒に配置されるようにオブジェクトを移動することを指します。

これを行うことの利点は通常、ごくわずかです。ただし、多数の小さなオブジェクトにアクセスする場合、平均シーク時間を短縮する傾向があります。


0

実際に、平均サイズのシーク時間を短縮するために、同じサイズの多くのファイルの割り当てを調整するためにスラブが作られているとは思いません。

私の意見では、ボリュームにスペースを割り当てる必要があるときに並列スレッドによる同時アクセスが多すぎる原因となる大容量の割り当てのレイテンシーを削減するために使用されると思います。これは、ボリューム割り当ての同じ部分にロックをかけるからです。ビットマップ。大きなビットマップの処理を避けるために、ビットマップのサイズが同じビットマップフラグメントを使用してディスク上の連続領域を表す「スラブ」に再分割できます(少なくとも1つ以上のクラスターを占有します。クラスターサイズが4KBの場合、ビットマップのクラスターは4K * 8 = 32Kの割り当て可能なクラスター、つまり128MB osストレージ。ボリュームの実際のスラブサイズは33から64の間で調整され、約33の同時スレッドが互いにブロックすることなくdistのビットマップのスペースを割り当てることができます)

そのため、スラブを使用してボリュームのスペース割り当てを高速化します。多くのファイルを作成するスレッドがロックを解除して別のスラブを試す前、または現在のスラブに少量を割り当てることを試みる前に、多くの場合、独自のスラブ内でそれを行うと想定しています別の利用可能なロックされていないスラブ、そして現在別のスレッドが現在使用しているスラブへのアクセスを同時に取得しようとしています。

これは、ディスク上の割り当てがボリューム全体に「広がっている」理由を説明しています。同様に、NTFSのMFTが他のスラブに属する少なくとも2つのフラグメントを持っている理由を説明します。これは、ボリュームを使用する多くのスレッド間の深刻なロックを回避するためです。MFTを最適化することはできますが、NTFSボリュームでI / Oのブロックを回避する必要がある同時割り当てのために、「予約領域」に保持されている少なくとも1つのフラグメントが残ります。

過去には、NTFSボリュームは複数のスラブに分割されておらず、多数のスレッドブロッキングとI / O完了を待機しているカーネル内のスレッドスイッチが多すぎるため、パフォーマンスが大幅に低下していました(実際には、ビットマップの割り当てが極端にビットマップの興味深い部分のほとんどがメモリにキャッシュされているため、高速でナノ秒かかります)。その後、ボリュームへの書き込みがフラッシュされ、ジャーナルされると、ジャーナルへの割り当てが原因で別のロックが発生するため、ジャーナルはボリューム上の別のスラブも使用します(可能な場合)。

しかし、NTFSが特定のサイズのファイルにスラブを捧げるとは思わない。NTFSは、データが削除され、割り当てられたサイズがしきい値を下回るとスラブをわずかにデフラグし、そのような2つのスラブをマージできます。

次の方法でスラブのサイズに関する情報を取得できます。

fsutil fsinfo ntfsinfo c:

明らかに、スラブはパフォーマンスを目的としたチューニングパラメーターです。ただし、多くのサードパーティの最適化ツールはこの設定を無視し、最適な配置を使用しません。理想的には、ボリュームの各スラブにいくつかの空きスペースが必要です。ただし、スラブが再割り当てされていないファイルとインデックスでいっぱいで、安定したままでなければなりません。絶えず作成され、リサイクルされる多くの小さな一時ファイルとトランザクションでは、同時スレッドの数に応じて十分なスラブにそれらを配置する必要があります。また、ボリュームがハードディスクまたはRAIDアレイ(SSDでは関係ありません)。

スラブはリモートファイルシステムにも役立ちますが、最適なサイズを予測することは困難です。反対側のスラブは、階層化された仮想化ボリュームの差分ボリュームには非常に小さく、配置戦略は非常に異なります。割り当ては仮想であり、異なる物理的場所に再マップされます。

レジストリ内の次のチューニングパラメータに関するマイクロソフトからの情報が引き続き必要です。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\SlabifyFunction]
MinimumReclaimSlabsMB      = REG_DWORD: 10240
MinimumReclaimSlabsPercent = REG_DWORD: 10
SlabEvictUpperBoundKB      = REG_DWORD: 204800
SlabEvictUpperBoundPercent = REG_DWORD: 20

これらは、Microsoftが配置戦略を変更することをまだ考えており、時間の経過とともに変更される可能性があるため、意図的に文書化されていないままだと思います。APIによって公開されるのではなく、レジストリとNTFSドライバーの内部ソースコード実装でのみ証拠を見つけます。

私たちが知っているのは、スラブがDEFRAG.EXEコマンドラインツールの「/ K」パラメーターによって短時間公開されることだけです。ただし、/ K最適化により、Windowsの初期インストール後(6回の再起動と測定後にBootvis最適化が行われる前であっても)大幅にパフォーマンスが向上することがわかります。SSDのトリミングに関連する/ Lパラメーターもあります。

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