HDDのCF化での書込回数削減対策
HDDのCF化での書込回数削減対策

HDDの代わりに擬似SDDとしてCFを使用したが、CFは書込可能回数に制限があるので、出来るだけ、CFへの書込を削減する方法。
OSはWindowsXP。
対策が必要と判断する項目のみ設定する。
なお、ファイルシステムがFAT32では不要な項目もある。

8.3文字ファイル名の生成を行わない。

レジストリエディタを起動し、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
を開く。
右側のキーから「NtfsDisable8dot3NameCreation」をダブルクリックし、キーに"1"を指定する。

レジストリ値 説明
0 生成する
1 生成しない

最終アクセス日時の更新を行わない

レジストリエディタを起動し、
HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥FileSystem
を開く。
右側のウィンドウで右クリックし、新規→DWORD値と選択し、名前を「NtfsDisableLastAccessUpdate」とする。
作成されたキーをダブルクリックし、キーに"1"を指定する。

レジストリ値 説明
0 更新する
1 更新しない

インデックスサービスを無効にする

ドライブのプロパティを開いて「全般」タブの一番下にある
「このディスクにインデックスを付け、ファイルの検索を早くする」
のチェックを外す。

ディスクの書き込みキャッシュを無効にする

以下の手順で無効に出来る。
マイコンピュータを右クリック → 管理 → デバイスマネージャ → ディスクドライブ → CFのドライブをダブルクリック → 「ポリシー」タブを選択 → 「ディスクの書き込みキャッシュを有効にする」のチェックを外す

Prefetchを無効にする

レジストリエディタを起動し、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
を開く。
右側のキーから「EnablePrefetcher」をダブルクリックし、キーに"0"を指定する。

レジストリ値 説明
1 アプリケーション起動のプリフェッチ
2 システム起動のプリフェッチ

なお、値はandで設定する為、両方共有効にする場合は"3"を指定する。

アイドル時の自動デフラグを無効にする

レジストリエディタを起動し、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout
を開く。
右側のウィンドウで右クリックし、新規→DWORD値と選択し、名前を「EnableAutoLayout」とする。
作成されたキーをダブルクリックし、キーに"0"を指定する。

レジストリ値 説明
0 無効
1 有効

システムの復元を無効にする

以下の手順で無効に出来る。
コントロールパネル → システム → 「システムの復元」タブを選択 → 「システムの復元を無効にする」をチェックする → 適用をクリックし、「システムの復元を無効にしますか?」ダイアログが表示されたら「はい」を選択

ハイバネーションを無効にする

以下の手順で無効に出来る。
コントロールパネル → 電源オプション → 「休止状態」タブを選択 → → 「休止状態を有効にする」のチェックを外す

ページファイルを無効にする

以下の手順で無効に出来る。
コントロールパネル → システム → 「詳細設定」タブを選択 → パフォーマンスにある「設定」ボタンをクリック → → 「詳細設定」タブを選択し、仮想メモリにある「変更」ボタンをクリック → 「ページング ファイルなし」を選択する

NTFS Change Journalを無効にする

システムドライブの場合、無効にしない方が望ましい。
コマンドプロンプトを立ち上げ、以下のコマンドを実行。
この場合、Cドライブを無効にしている。

C:\>%windir%\system32\fsutil.exe usn deletejournal /D C:

有効にする場合は以下のコマンドを実行。

C:\>%windir%\system32\fsutil.exe usn createjournal m=1000 a=100 C:

NTカーネルを物理メモリに置く

レジストリエディタを起動し、
HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Session Manager¥Memory Management
を開く。
右側のキーから「DisablePagingExecutive」をダブルクリックし、キーに"1"を指定する。

レジストリ値 説明
0 NTカーネルのページングを有効化
1 NTカーネルのページングを無効化

ただし、ある程度のメモリを搭載しておく必要がある。

その他

以下の対策は主にWindows側ではなく、ハードウェアでの対策。

RAID0の構築

容量が増えるので、同じ作業を行った場合、CFの物理的に同一箇所への書込回数が削減される。
また、速度も高速化される。

使用容量が50%以上にならないようにする

CFでは空きエリアを順次使用して同一箇所へ書込が集中するのを防ぐ為、空き容量が大きい程効果がある。
この場合は大容量のCFを使用する必要がある。

メインメモリを可能な限り搭載する

メインメモリが少ないと、その分CFへの書込が増えるので、メインメモリは出来れば最大容量まで増設する。

空きエリアのデフラグを行う

CFはランダムアクセスに強い為、使用エリアのデフラグはほとんど意味が無い。
Windows標準のデフラグだと使用エリアのデフラグの為、無駄に書込が行われることになる。
そこで、空きエリアのデフラグが出来るDefraggler 等を用いて空きエリアの断片化を解消する。

▲ページのトップへ