2020/06/26

余った RAM の有効活用として RAM ディスクの使い道を模索してみる

Windows 10 のデスクトップパソコンをメモリ 8 GB で 5 年くらい使っていたのですが、何となく動作が重くなってきたような気がしてきて、そろそろメモリを増設した方がいいかなと思いました。

マザーボードにはメモリのスロットが 4 つあり、今までは 4 GB のメモリを 2 枚差し込んでデュアルチャンネルで使っていました。スロットの空きが 2 つあるので、そこに追加する形で増設することができます。

一応マザーボードの性能的には 1 つのスロットに 8 GB ずつで最大 32 GB まで搭載は可能らしいですが、そこまで欲張る必要もないので、とりあえず今ある 8 GB をそのまま残して 16 GB だけ追加することにしました。合計で 24 GB になります。

実際に増設して使ってみましたが、思ったほどメモリの使用量が増えず、半分以上が無駄になっていました。

せっかく大量にメモリを積んだのですからどうにかしてうまく活用できないかと考えてみたところ、RAM ディスクという使い方があることを思いつきました。メモリに余裕がない時には RAM ディスクなんて使い道はないと思っていたのですが、数 GB 単位で使えるとなると活用法もありそうな気がしてきます。

RAM ディスク作成用には ImDisk Toolkit というツールを導入しました。RAM ディスクに 8 GB を割り当てて使ってみました。

真っ先に思い付いたのは Second Life ビューアのキャッシュとして使うことです。Second Life ビューアはとにかく読み込むテクスチャのデータが多くて動作が重くなりがちです。キャッシュを HDD から読み込むのはかなり遅くなりますが、SSD を使うことで改善されます。それをさらに高速な RAM ディスクにすればかなり快適になるのではないかと。

さっそく試してみたところ、一応うまくいって描画速度も改善されたような気がしました。Second Life ビューアのキャッシュとして使うのは RAM ディスクの理想的な活用法の一つと言えるかもしれません。

ただし、今までは HDD に 9 GB ほどのキャッシュ領域を確保していたのですが、さすがに RAM ディスクではそこまで大容量の領域を確保するのは厳しくなります。9 GB くらいならできないことはないのですが、メモリの大半を Second Life だけに持っていかれるのはもったいなさすぎます。とりあえずしばらくは Second Life 用には 1 GB(デフォルト)くらいの割り当てで使ってみようかと思います。

それ以外に何かよい使い道はないものか。いろいろと模索してみたところ、普段からよく使う音声編集ソフトの Audacity に使ってみるのが良さそうでした。

Audacity は非常に便利なソフトなのですが、編集にかかる時間がとにかく遅いのが難点でした。原因は編集操作をするたびに毎回キャッシュの読み書きをするからです。大きなファイルになると 1 回の操作で 1 GB 以上ものデータを書き込んだりしています。キャッシュの保存先が HDD になっていれば処理の完了までに数十秒(数分)かかるなんてのは普通です。SSD ならかなり改善されますが、読み書きを頻繁にしていると SDD が劣化してしまう恐れがあります。

この Audacity のキャッシュの保存場所(テンポラリディレクトリ)を RAM ディスクにすることでかなりの高速化が期待できるのではないかと。SSD のように劣化の心配もありません。

一応事前にネットで情報を調べてみたところ、Audacity に RAM ディスクを使用しているという話題はほとんど見当たらず、中には Audacity のテンポラリディレクトリには RAM ディスクを指定できないといったような情報を書き込んでいる人もいました。

これは無理なのかな?と不安に思いつつも、とりあえず試してみたところ、何の問題もなく RAM ディスクに設定することができました。処理速度も HDD に比べて 5,6 倍にはなっていました。これはかなり快適……といいたいところなのですが、問題はやはり容量でした。

Audacity は処理のたびにキャッシュを貯めていくので、8 GB 程度ではすぐに足りなくなってしまいます。容量オーバーしたらどうなるかというと、編集データが消えて無音データになってしまいました。これは致命的です。古いキャッシュを自動的に捨てるということができないみたいです。(終了時にはすべて破棄されます。)

Audacity では最大でどの程度の容量が必要か予測が付かないので、そういう意味で RAM ディスクを使うのは厳しいと言わざるを得ません。

仕方がないので Audacity のテンポラリディレクトリには SSD を使うことにしました。実は SSD でも HDD に比べて数倍の速さがあり、RAM ディスクと大差ありませんでした。もはやボトルネックとなっているのは読み書きの速度ではなく CPU の処理速度の問題なのかもしれません。

あとはウェブブラウザのキャッシュとして使うというような活用法が紹介されていたりもしますが、ウェブブラウジングについてはそれほど遅いとは感じていないのでわざわざ手間のかかるめんどくさい設定をしてまで RAM ディスクを使うほどではないかなと思っていたり……。

今はフレッツ光のファミリータイプで 100 Mbps の回線を使っています。速度不足は感じてきてはいるものの、4K 動画を観るような環境があるわけでもなく、特に困っているわけでもありません。Facebook の読み込みがやたらと遅く感じたりはしますが、RAM ディスクを使えば改善したりするんでしょうかねぇ? RAM ディスクがあってもダウンロード速度が速くなるわけではないでしょうしね。

近々 1 Gbps のギガラインタイプに変更するつもりでいるので、回線速度の問題はさらに改善されます。そうなると RAM ディスクでの高速化の恩恵も実感しやすくなるのかな?

そもそもそういうキャッシュの類は RAM ディスクなんか使わなくても Windows の標準機能である SuperFetch( SysMain )みたいなのが頑張っていてそこそこ高速化されているんじゃないの?とも思ったりするのですけどね。