[System Environment] | |||||||||||
Windows Vista/Windows Server 2008でディスクの書き込みキャッシュを有効にする
|
|||||||||||
|
解説 |
アプリケーションがデータをファイルに書き込む場合、まずOS内に用意されたキャッシュ用領域(タスク・マネージャで「システム・キャッシュ」などと表現されている領域)にいったんデータを貯めておき、ある程度まとまったところで、実際にディスクに書き込む。これにより、ファイル読み書きのサイズと実際のセクタ/クラスタ・サイズの違いを吸収したり、読み書きのパフォーマンスの向上などを図ったりしている。
キャッシュに蓄積されたデータをどのタイミングでディスクに書き込むかは、キャッシュの制御アルゴリズムによる。ディスクへの書き込みをなるべく控え、ある程度まとまってから書き込むようにする「ライトバック(write back、書き戻し)」方式にすれば、パフォーマンスの向上が期待できる。ファイルのコピーなどでは連続するクラスタへの書き込みが続くため、まとめて書き込めばオーバーヘッドを最小限にできるからだ。しかしキャッシュのデータをディスクに書き込む前にシステムに障害が発生すると、(アプリケーションが)書き込んだはずのデータが失われてしまう可能性があるため、ファイルへの書き込みと同時に、必ずキャッシュの内容をディスクへも書き込み、データが失われる危険性を最小限にすることもできる。これを「ライトスルー(write through)」方式という。
Windows OSでは、ドライブのプロパティでどちらの方式を利用するかを設定できるようになっている。例えばエクスプローラでC:ドライブを右クリックし、ポップアップ・メニューから[プロパティ]を選択する。そしてプロパティ・ダイアログで[ハードウェア]タブを選択するとシステムに接続されているハードディスクの一覧が表示されるので、適当なドライブを選んで[プロパティ]ボタンをクリックする。
ディスクのプロパティ | ||||||||||||
ハードディスクの書き込みキャッシュの制御方式を設定、確認するには、ディスクのプロパティを利用する。 | ||||||||||||
|
[プロパティ]ボタンをクリックして[ポリシー]タブを選択すると次のように表示される。
書き込み方式の確認 | ||||||
Windows VistaやWindows Server 2008では、UACによる保護機能が働き、項目が変更できない。 | ||||||
|
これが書き込み方式を変更するための設定画面であるが、見ると分かるように、設定ボタンがグレー・アウトしていて変更できない。Windows Server 2003やWindows XP/Windows 2000などではこの画面で設定が変更できたが、Windows VistaやWindows Server 2008ではUACにより、そのような操作は禁止されている(UACのダイアログも表示されないので、この画面では何も操作できない)。本TIPSでは、これらのOSにおけるキャッシュの制御方式の変更方法やその意味などについて解説する。
操作方法 |
Windows VistaやWindows Server 2008でディスク・キャッシュの書き込み制御方式を変更するには、管理者としてシステムにログオン後、[コントロール パネル]の[管理ツール]−[コンピュータの管理]を実行する([コンピュータ]を右クリックして[管理]を選択してもよいし、Windows Server 2008の場合は[サーバー マネージャ]でもよい)。UACの確認ダイアログが表示されるので[続行]をクリックしてツールを起動し、[記憶域]の下にある[ディスクの管理]を選択する。そして表示されたディスク・ドライブの一覧からキャッシュを設定したいドライブを選び、右クリックしてポップアップ・メニューから[プロパティ]を選択する。
ディスクのプロパティの表示 | |||||||||
ディスクの書き込み方式を変更するには、ディスクの管理ツールを使うとよい。 | |||||||||
|
表示されたプロパティ・ダイアログで[ポリシー]タブを選択すると、書き込みキャッシュの制御方法を設定できる。
書き込み方式の変更 | |||||||||||||||
ディスクの管理ツールから起動したプロパティ画面では、このように設定を変更できる。 | |||||||||||||||
|
いくつか設定できる項目があるが、一般的にはをオンにして運用するのが普通である。以下、それぞれの設定について解説しておく。
■「クイック削除のために最適化する」
これは、USBメモリなどのリムーバブル・デバイスでのみ選択可能な項目である。これを選択すると、書き込みがすべてライトスルーとなるので、書き込み後は[ハードウェアの安全な取り出し]という操作を行わずとも、デバイスを取り外すことができる(書き込みランプが点灯している間は取り外してはいけないのは当然だが)。
■「パフォーマンスのために最適化する」
ハードディスクなど、非リムーバブルのデバイスはこちらしか選択できない。リムーバブル・デバイスの場合は、こちらを選択すると書き込みデータやファイル・システム情報などがキャッシュされるので、取り外す場合は必ず[ハードウェアの安全な取り出し]という操作を行う必要がある。
■「ディスクの書き込みキャッシュを有効にする」
これをオンにするとキャッシュの制御方式がライトバックになり、オフにするとライトスルーとなる。デフォルトではオンとなっているはずだが、データの確実性が必要な場合は(データベース・システムなど)、オフにして運用してもよい。ファイル・サーバとして利用している場合はオンにしておくのがよいだろう。なおActive Directoryのドメイン・コントローラとして設定すると自動的にオフになり、信頼性を向上させるようになっているが、パフォーマンスを優先させたい場合は、そのデメリットを十分理解したうえでオンにしてもよいだろう。
■「拡張処理能力を有効にする」
これは上のをオンにした場合にのみ設定可能な項目だ。この設定はWindows Server 2003でも設定可能である(Windows XPやそれ以前のOSでは利用できない)。この項目の説明文には、「バックアップの電源供給があるディスクのみに推奨します。……」とあるので、UPSを装備したシステムやバッテリを持つノートPCなどでは有用なオプションに見える。だが実際は、ディスク・ドライブ自身の持つキャッシュ制御機能FUA(Forced Unit Access)を利用するかどうかを決めるものである。
ハードディスク内にもキャッシュがあるため、突然の電源断で書き込み前のデータが失われる可能性があるが、それを避け、書き込みコマンドを受け付けたらライトスルーでディスクに書き込むように指示することもできる(「同期書き込み」などとも呼ばれる)。その機能を制御するのがFUAであるが(ディスクによっては利用できないことがある)、実はWindows Server 2003よりも前のOSではこのFUA機能の制御コードが間違っており、正しく動作していなかった。いくらディスク・ドライブへのコミット(同期書き込み)要求を指示しても、すべて無視されていた。パフォーマンス的にはこれは望ましいが、機能的には正しくない。Windows Server 2003ではこれを修正したが、アプリケーションによってはパフォーマンスの低下が発生し、問題となる可能性がある。そこで用意されたのがこのオプションである。
これをオンにすると、以前の状態(つまりバグありの状態)を再現し、FUA要求を無視するようになる。実際の書き込み動作が遅延され、いつディスクに書き込まれるかOS側からは制御できなくなるため、突然電源がオフになるようなシステムでは危険性が高くなる(そのため、「バックアップの電源供給が……」というメッセージが表示されている)。オフにすると正しくFUAを処理するようになる。デフォルトではオフとなっているが、特に理由がない限りオフのままでよいだろう。この機能については以下の記事が詳しい。
- 「Windows秘話―バグの力」(マイクロソフトTechNet)
Column |
||||||
キャッシュの制御方式を変えると、ディスクのパフォーマンス(読み書き速度)にどの程度の違いが出るかを見るために、ディスクの読み書きベンチマークを行ってみた。以下は、「CrystalDiskMark」というベンチマーク・ソフトウェアを使って測定した場合の例である。「Seq」というのは、ファイルのコピーなど、比較的大きなサイズのファイルの読み書き作業などでのパフォーマンスを表している。「512K」は512Kbytes単位でのランダム読み書きの速度を表し、一般的なファイル入出力などでの動作を反映していると考えてよいだろう。
これを見ると分かるように、ライトバックからライトスルーに変更すると、ディスクへの書き込み速度が読み出しの半分とか3分の1程度にまで低下する。ファイルのコピーなどが読み出しよりも極端に遅い場合は、この設定を確認するとよい。 |
この記事と関連性の高い別の記事
- Windows Vista/7のエクスプローラでデータファイルをCD/DVD-Rに書き込む(TIPS)
- ディスク・クリーンアップ・ツールを定期的に実施してディスクの無駄を省く(TIPS)
- Windowsでディスクの内容を完全に消去する(TIPS)
- Windowsでキャッシュされたログオンを無効にする(暗号化ファイルシステムの運用に注意)(TIPS)
- セキュリティを強化して公共の場所にPCを設置する(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|