【多い意味があった】RAMディスクの使い方~ImDiskで分かるRAMの有効利用~ | Raven's Articles

【多い意味があった】RAMディスクの使い方~ImDiskで分かるRAMの有効利用~

この記事にはPRとスポンサーリンクが含まれます!

この記事の概要を簡単まとめ!

  • Chromeのキャッシュ・その他書き込み改善にRAMディスクを使用
  • 使用したRAMディスクツールはImDisk Toolkit
  • 他にも設定できることがあるので見ていく
  • 基本設定だけの通常使用ならConfigurationだけで事足りる
  • 他のツールは多くの人にとってはあまり必要なさそうである
  • Configurationが使えればRAMディスクは十分使える

RAMディスクの効果は非常に大きかった。まずはChromeのキャッシュに対してRAMディスクを適用すると、約400MBの無駄をSSDから省くことができ、全体の寿命を少し伸ばすことに成功した。その次に書き込みが多いIndexedDBとService Workerに対して適用すると、全体で約2GBも受け流すことができるようになった。

そんなImDiskだが、Chromeの記事ではちょっとした紹介に終わった。しかしこれは他のことでも利用できるはずなので、ここで詳しく見ていく。そうすることで、今まで持て余していたRAMを高速アクセスと不要なファイルの終了時自動削除で有効活用しつつ、SSDの書き込みを減らすことによる寿命の向上を他のものでも適用できる可能性があるためだ。

持て余したRAMの有効活用

RAMディスクを作ろう

ChromeキャッシュをRAMディスクへ移動

前回記事は、異常なCドライブへの書き込み調査から判明したChromeのキャッシュ書き込みすぎ問題を解消するべく、RAMディスクを利用してキャッシュアクセスをそれに受け流すようにしたものである。リンクは以下である。

 

検証時に実験台にしたのは、アクセスが異常に多かったキャッシュとService Worker、YouTubeへのアップロード時のみIndexedDBのhttps_studio.youtube.com_0.indexeddb.blobおよびhttps_studio.youtube.com_0.indexeddb.leveldbが異常に書き込まれるため、それらの実体のアクセス先をRAMディスクに変更する処理である。

キャッシュについてはショートカットから起動コマンド設定ができるので、--disk-cache-dirを利用して起動時にRAMディスクの任意の場所を対象に選択することですぐに対応できた。しかし、IndexedDBとService Workerは対応するコマンドが存在しないため、シンボリックリンクを利用した。

まずはRAMディスクに実体ごと移動し、その後でCドライブ側にシンボリックリンクを作成した。これによりChromeからはCドライブへのアクセスを行っているように認識するが、実際はRAMディスクにアクセスが受け流されている。これによってChromeからは変更できない設定でも、実質的にアクセス先を変更することができるわけである。



RAMディスクにはImDisk Toolkitを使用した

そのRAMディスクだが、確認できる限りではOS標準で作成不可能である。そのため外部ツールに頼る必要がある。RAMディスクを作成するツールは多数存在するが、その中で選択したのがImDisk Toolkitである。単にImDiskとすることもある。検索結果で上位に上がってきやすいものであるのと、既に先駆者が多いこともあって情報が出揃っており、使うに困らなかったことから選択したものである。

インストールタイプはexeではなくバッチファイルを利用したもので、付属のcabファイルを展開することによってインストールが行われるものとなっている。インストール自体は一般的なexeファイル型のインストーラを実行したときと同じウィザード形式で進められる。インストーラのイメージは以下のようになっている。

ImDiskインストールウィザード
ImDiskのインストールウィザード。上の3つはインストールするが、下の3つはほぼ任意である。

インストールに際し、Componentsは全てインストールするが、Optionsについては殆ど必要がなく、任意のものになる。説明は以下の通りである。

  • Enable entries in context menus(コンテクストメニューに追加): 右クリックすると表示されるメニューに追加する。
  • Create shortcuts on desktop(デスクトップにショートカットを追加): デスクトップにショートカットを追加する。
  • Shortcuts for all users(全てのユーザーにショートカットを追加): 全てのユーザーにショートカットを追加する。

これらは容量の圧迫を避けることや必要性がないことを考え、インストール時に切っている。というのもRAMディスクの設定は頻繁に変更することがなく、1台に複数ユーザーを入れている場合は、知識のない人間に下手に使われるとソフトウェア的エラーを発生させる可能性が高いものであるからだ。もっとも、現在はPCは1人1台に割り当てられるくらいなので、使いまわすというのはレアケースであることが多いが。

他にも設定できることがある

Chromeでの解説時はあくまでもメインはChromeのキャッシュとアクセスの多いフォルダ・ファイルのRAMディスクへの移転およびシンボリックリンクの追加であるため、それに関わることの最低限の解説だけを行って、ImDisk自体の詳しい解説は行わなかった。

だが設定時、ざっと目を通したところシンプルながら設定項目は多い感じで、それゆえ本格運用する場合には理解しておかなければならない項目もあった。また、メインとなるConfiguration以外にもツールがあり、そこでも別の項目について設定できることが分かっている。そのため、それらのことも含めてImDiskで出来ることを確認していき、どのように使えるかについて考えていくものとする。

詳しく見るImDisk – 最も使う”Configuration”

ImDiskで最も使うことになるのが”Configuration”である。もっと言えばこれ以外は全く触らないこともあり得る。これの中身を詳しく見ていくこととする。

ImDisk Configuration 全てのタブ
ImDisk Configurationで確認できる全てのタブ。シンプルな割りに機能が詰まっているようだ。

Basicタブ

RAMディスクの設定についてまとめられたタブである。以下の項目が存在する。

Size: 生成するサイズを単位ごとに変えられる

RAMディスクの設定において重要なのがサイズ設定だ。単位はKB, MB, GBで変更できる。もっとも、RAMが余っているのだからRAMディスクを設定する余裕があるはずで、KBやMBでは全く足しにならない。なので現在のWindows OSでは単位はGB一択である。入力できる値は自然数のみで、小数入力はできない。したがって0.1GB単位で調整する場合はMB単位として、1024倍の計算が必要になる。もっとも、Windows標準の電卓を使えば計算は簡単である。

その下にはチェックボックスで”Allocate Memory Dynamically”とある。動的に割り当てる設定で、チェックを入れると使用量に応じてRAMディスクの容量が増えていくものとなる。割り当ての上限は設定値までとなる。これによりRAMは従来のシステムメモリとして共存しつつ利用することができるようになるが、代わりに速度が低下する。実装RAMが少なければONにする方がいいが、十分に多い場合はOFFで問題ない。




ドライブレターとファイルシステム

RAMディスク化するにあたって、エクスプローラー等OSが認識できるようにドライブレターとファイルシステムの設定が必要になる。それについてここで設定する。ドライブレターはOSが使用中のものを除いて任意のローマ字を割り当てることができるようになっている。RAMディスクだと分かりやすい文字を割り当てるといいだろう。最もわかりやすいのはRAMディスクの’R’である。

ファイルシステムは、キャッシュの置き換えとして利用するならNTFS一択である。USBメモリでもないので、FAT系列を選択する意味はない。インストーラを置く場合には意味があるかもしれないが、だとしても需要はあまりにも低く、まず選択することはない。

なお、ドライブレターの右の”Unmount”は、RAMディスクが有効な場合に実行できる。これを実行すると確認ダイアログボックスが表示され、それに対してOKをクリックすることで即時解除される。それと同時にRAMディスクに置かれていたデータは全て消滅する。また、RAMディスクにキャッシュなどを設定している場合は何らかのエラーが発生する可能性があるので、あらかじめ設定変更によってアンマウントしても問題がないことを確認してから実行すること。

スタートアップ起動とTEMPの変更

再起動またはシャットダウンを行うと、RAMディスクは終了する。再設定には起動後に”Configuration”を起動してOKをクリックしなければならない。その手間を省くためであろう、スタートアップ時に起動するオプションがある。これをONにしておくことで、起動完了と同時にRAMディスクを自動で作成する。これにより、いちいち”Configuration”を起動しなくてよくなる。

ただしこの場合はフォルダは自動作成してくれない。そのためシンボリックリンクを設定している場合は、手動でシンボリックリンクの設定と全く同じ構造のフォルダ構成にしなければならない。これを行う場合はcmdから手動ということが多いが、わざわざそんなコマンドを1行ずつ打つのも面倒であるはずだ。その場合はバッチファイルに既定動作を記述しておき、再起動後にそれを実行して再構成しておくのが最も簡単で早いやり方となる。

また、Windows標準ではCドライブ下に置かれるTEMP(一時ファイル)の環境変数をRAMディスクの場所に書き換える機能を持つ。”Create TEMP Folder”にチェックを入れて”Set TEMP Variables…”をクリックすることで環境変数が書き換えられる。ただしこれは推奨できない。環境変数の書き換えを伴う以上、他に影響が発生する可能性が高く、動作不良とエラーの原因になるためだ。そのため、これはあえて設定することもないであろう。

Advancedタブ

このタブで出来ることは次の通りである。

  • Cluster Size: クラスタサイズを指定する。初期値はデフォルト。最小512Bから最大64KBの2nKB(-1≤n≤6, n=整数)の範囲で指定できる。
  • Drive Label: ここに入力された名前でRAMディスクが作成される。
  • Quick Format: クイックフォーマットを有効にする。
  • Enable NTFS Compression: NTFS圧縮を有効にする。
  • Use AWE physical memory: 32bitのWindows OSでも4GB以上のRAMを有効にする。
  • Dynamic RamDisk Parameters: “Allocate Memory Dynamically”が有効な場合のみ調整可能。
  • Use Mount Point: マウントする場所を指定する。既存のドライブの中にマウントするといったこともできるようだが、使うことはないだろう。
  • Additional Parameters: 追加のパラメータを設定する。右のボタンをクリックすることで説明書を呼び出すことができる。

ここはあまり設定することがない。ラベル名以外は触ることは基本的にないものと考えていい。




Dataタブ

RAMディスクはその仕様上、再起動およびシャットダウン時に全てのデータが削除される。したがって、そのデータ関係の設定がここで行える。以下の項目が存在する。

  • Load Content from Image File or Folder: RAMディスク起動時に読み込むイメージファイルないしフォルダを選択する。起動時に選択したファイル全てをRAMディスクのルートディレクトリにコピーする。
  • Synchronize at System Shutdown: シャットダウン時にRAMディスクの内容を上で選択したフォルダにコピーする。この時次の詳細な設定ができる。
    • Copy only files with Archive attribute: 変更のあったファイルのみコピーする。
    • Delete data removed from RamDisk: RAMディスクから削除したものはコピー元のディスクからも削除する。危険なので使用時は注意。
    • Excluded Folders: 書き込みを除外するフォルダを指定できる。デフォルトでTemp, System Volume Informationが該当する。
    • Synchronize now: 今書き込みする。

RAMディスクを運用する目的が高速化というのであれば、これを行う意味はあるだろう。しかし私はSSDへの書き込み低減を目的としているので、使うことはなかった。そのため、ここは人によっては全く使わないということもあり得るものになるであろう。

以上で”Configuration”の解説を完了する。

“Configuration”以外のツールについて

基本は”Configuration”だけで全てが解決するようになっているが、同時についてくる他のツールについても概要を見ていく。

Configuration以外のツールの概要
Configuration以外のツールを起動した状態。やはりシンプルに見える。

General Settings

全般設定についてを扱うものである。コンテクストメニューのエントリの有効化、マウント時にエクスプローラーでそのRAMディスクのルートディレクトリを開かないようにする設定が行える。エクスプローラーで開かれるのが邪魔に感じる人もいるはずなので、それを良しとしないのであればチェックを入れた方がいい。その他の機能は使うことは殆どないであろう。

Virtual Disk Driver

これは設定中のRAMディスクを一覧表示し、そこからさまざまな操作を行えるようになっている。GUIで操作・管理できるので、個別に細かい設定を行う予定があるのであれば、ここから調整していくといいだろう。詳細は各自で確認してもらいたい。

Mount Image File

これはマウント時の設定を詳細に行えるものであるようだ。1つのドライブとして扱うか、マウントポイントを利用するかを選択でき、読み取り専用、リムーバブルディスクとするか、そしてデバイスのタイプの選択もできるようになっている。また1つのドライブに複数のパーティションを設ける設定もできるようになっているようである。”Configuration”とは別のことができると考えられる。とはいえ、通常使用ではやはり使用するタイミングは少ないものになるであろう。

以上で各ツールの概要確認を完了する。

Configurationが使えればRAMディスクは十分使える

これでImDisk Toolkitの調査を完了する。元々ImDiskはコマンドラインで動かすものであったようで、ImDisk単体で検索するとcmdを使った設定に関する情報とそのコマンド各種の解説、実行後にそれがどうなるかの説明などがあった。ただ、これではいくらcmdに慣れている私でも流石に面倒であり、加えてその情報だけでバッチファイルを作ろうにも膨大な記述量ないしバッチファイルの分離が必要になる。そこまでする気力は私にはない。

幸い、その面倒さを考えてImDiskはGUI操作可能なバージョンを作成したので、そのおかげで誰でも簡単にRAMディスクの作成が可能になった。直観的に操作できるので、そこまで面倒に感じることもないはずだ。設定項目こそ多く感じるものの、実際には2, 3の項目を調整するだけなので、殆どの人に使いやすいものになっている。

ところで最後に実験として、CrystarlDiskMarkを使い、果たしてどれくらいの速度が出るかを検証した。その結果が以下である。

RAMディスクのCDM結果
RAMディスクにCDMを実行した結果。速度が出ていないように見えるが、対象がDDR3-1666であることに留意されたい。

いつもの8570wで実験している関係で、規格はDDR3-1666である。そのため最新のRAMと比較すれば明らかにスピードは低くなっている。だがそれを考慮しても、一般的なSSDに匹敵するスピードが出ることがこれで明らかとなった。また設定の中に、指定フォルダからコピーして書き込みはRAMディスク側に行わせ、最後に再起動またはシャットダウン時にコピー元へ上書きする機能もあるので、SSDを傷つけたくないが変更を伴う作業に使用したい場合はこれの使用も十分にありだ。とにかく、RAMが余っているのなら導入する価値は必ずある。ただし、問題が発生しても自己責任で。

 

以上、RAMディスクの使い方~ImDiskで分かるRAMの有効利用~であった。初めて使うRAMディスクはImDiskが間違いないと言えるであろう。

 

KIBEKIN at 00:00 Jul. 19th, 2023


スポンサーリンク



RA管理人
RA管理人。名前は時にない。かつてこのサイトを管理していた前任者はどこかへ消えてしまった。


コメントを残す

メールアドレスが公開されることはありません。
名前は必須項目となります。記入をお願いいたします。

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検知しました。 | Ad block detected.

ブラウザのアドオン、及びブラウザに内蔵されているアドブロック機能により、広告ブロックが行われていることが検知されました。
本ブログは広告収入により運営されており、広告ブロックは正当な理由の下で配信されている広告をも阻害することとなり、運営が非常に困難になります。
この表示は広告ブロック機能の無効化、あるいはホワイトリストへの追加を行った上で、更新を行うことで消すことができます。または、広告ブロック機能のないブラウザで閲覧ください。
広告で嫌な思いをしたことがあるとは思いますが、一律に広告をブロックすることで失われるコンテンツも存在します。そのことへのご理解とご協力をお願いします。

We have detected that ad-blocking is being performed by browser add-ons and the browser’s built-in ad-blocking function.
This blog is operated by advertising revenue, and ad blocking will interfere with advertisements that are also being served under legitimate reasons, making it very difficult to operate.
This display can be removed by disabling the ad-blocking function or adding it to the white list and then updating it. Alternatively, please view the site with a browser that does not have an ad-blocking function.
We understand that you may have had bad experiences with advertisements, but there are some contents that are lost by uniformly blocking advertisements. We ask for your understanding and cooperation in this matter.

Powered By
100% Free SEO Tools - Tool Kits PRO