エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


Windowsのメモリ不足はUSBメモリに仮想メモリをおいて高速化

      2017/03/07

Windows7でメモリが足りないときはUSBメモリで代用する

 

設定方法

 
 1.USBメモリを USBポートに差す。
 
 2.ページングファイルの置く場所を USBメモリ上に設定する
 
これで劇的に改善するはずです。
 
 

今回の検証をするきっかけと検証環境について

 

検証の環境

 
まず、今回の検証を行った環境の説明をしておきます。
 
ハードウェア
 CPU:
 メモリ:2.0GB
 HDD:500GB×2
 OS:Windows7 HomePremium SP1
 
これに対して、「リネージュ2(リネ2)」「インターネットエクスプローラー(IE)」「FireFox(FF)」を起動させて使うことで 2GBのメモリを超えて使用する状況がありました。
(「リネ2」は、MMORPGと呼ばれるジャンルのオンラインRPGで、キレイな 3Dのグラフィックがウリの一つのゲームです。そのため、大量のメモリを消費します。)
 
 
具体的な状況としては、リネ2は常にバックグラウンドで起動している状態で、1.5GB~2.0GBほどのメモリを使用しています。それに加え、FFを起動させながら、IEでブラウジングをする、といった状況で発生していました。
 
 

WindowsXPから Windows7に変えたらメモリが足りなくなった

 
以前から同じような使い方をしていましたが、不具合が起こるようになった原因は OSを WindowsXPから Windows7に変えたことでした。
 
もともと XPのころからメモリ消費量を抑えるために、画面表示をクラシック(「コントロールパネル」-「個人設定」の「Windowsクラシック」というテーマ)にしていましたので、7でもクラシック設定にするといった対応はしてみたのですが、リネ2の圧倒的なメモリ消費量の前では無駄な努力だと思われました。
 
 

WindowsXPから Windows7でページングファイルで激重に

 
そもそもなぜ重いのか。
それはメモリ不足でページングファイルが発生しているからです。
 
特に、新しくブラウザを立ち上げつつ、さらにウインドウを切り替える処理を行っているときなどは、30秒近く動かないといったことが頻繁に発生していました。
これは、ページングファイルの設定のためなのです。
 
 
ページングファイルとは、直接的には仮想メモリとして使うファイルのことですが、それらの仮想メモリの仕組み全体を指す言葉でもあります。
ページングファイルとは、ハードディスク上にメモリの代わりとなる仮想的なメモリ領域を作成し、メモリ不足によりメモリ上に情報が置けなくなった場合にその仮想領域を利用して処理を実行するものです。
 
この処理があるおかげで、多くのメモリを搭載していないパソコンでも、複数のプログラムを立ち上げたときなどにも止まらずに処理を行うことができるのです。
 
ですが、通常はメモリを使って処理をする部分をハードディスク上にある情報で処理を実行しますので、圧倒的に処理が遅くなります。
 
また、ページングファイルを作成するハードディスクと、システムファイルが入っているハードディスクと同じディスク上に作成した場合、アプリケーションを起動させようとすると、アプリケーションの情報を読み込みつつ、ページングファイルにも読み書きを実施する処理が行われることになります。
何か処理するたびに同じハードディスクにアクセスをしに行きますので、処理が重くなるのです。
 
この状況が、私のパソコンで起こっている状況でした。
 
具体的には、最初に書いた、リネ2、IE、FFを起動しようとしたところ、IEのページが切り替わるまで 30秒程度かかることがたびたびあり、とても実用に耐えるものではありませんでした。
しかも、リネ2は、リアルタイムにサーバと通信をしていますので、PCの処理が重たくて、一定時間処理が行えない場合は、自動的にクライアント側のソフトの処理を止めてしまう「サバ落ち」状態になっていました。
こうなると、改めてリネ2を再起動して、接続し直して...ということを行う必要があったのですが、リネ2は起動するのにも 5分近い時間がかかりますので、面倒でなりませんでした。
 
 


 

Windows7でメモリが足りないときの対応方法

 

メモリ不足によるページングファイルで激重対策

 
そんなわけで、まず最初は、ページングファイルを OFFにしてみました。
 
ページングファイルを作成しているために、何か処理をするたびにハードディスクに処理をしに行くことが重たく原因なわけですので、単純にそのページンファイルの設定を OFFにすれば HDDへのアクセスが減るために、処理が重くなることを避けられるのではないか、と考えました。
 
その結果、メモリ不足でそもそもアプリが起動しないとのメッセージが表示されたり、起動させている途中でメモリ不足で止まってしまったり、とページングファイル OFFでは全く何も解決しないということが理解できました。
 
ちなみに、ページングファイルを OFFにすることを推奨しているサイトはいろいろ拝見しますが、メモリが足りなくなったらいきなり PCがフリーズしたり、アプリが落ちたりしますので、全くもってお勧めしません。
 
 

ページングファイルをシステム HDD以外のドライブを指定

 
それならば、と、次は、接続されているものの使われていないシステムドライブ以外の HDDがありましたので、これを使うことにしました。(「Dドライブ」と表現しておきます。)
 
HDDが 2台という環境は RAIDを組んでいるのではなく、単に 2台の HDDがつながっているという状態です。
もともと HDDが故障し、その HDDからでは起動できなくなったために HDDを追加したのですが、その後再び元の HDDは何も問題なく利用ができているという状況になり、今では単に HDDが 2台つながっている状態になっている、ということです。
 
 
ページングファイルを作成することで遅くなるそもそもの原因は、OSや各種アプリが入っているシステムドライブにページングファイルを生成する設定になっていることでした。
先にも書きましたが、アプリを起動させようとするときは、アプリ起動のために HDDに情報を読みに行くわけですが、当然メモリ不足になるので、メモリ不足解消のためにページングファイルを生成しシステムドライブに情報を書き込みに行き、それが同じ HDDなので...となっていることが処理が重たくなる原因でした。
 
そのため、せめてページングファイルをシステムドライブではない Dドライブに変更することで、アプリの起動の HDDアクセスはシステムドライブで、ページングファイルのためのアクセスは Dドライブに、と分けることで少しは処理が改善するのではないか、と試してみることにしたのです。
 
その結果、劇的に動作スピードが改善しました!
 
具体的には、リネージュ2を起動して、FireFoxを起動させながら、IEのリンクをクリックして表示を切り替えるという処理をしてみたところ、IEの画面が切り替わるまでに、調子が悪い時には 5秒程度。早い時にはページングファイルが作成されていないときと変わらないスピードにまで改善しました。
 
もともとの状態では、30秒ほどかかることも少なくなかったわけですので、その劇的な改善ぶりは目を見張るものがありました。
 
ここまででも十分実用的な水準です。
実際、私の環境はそれで日々動いていますので。
 
ただ、やはり HDD上に情報が書かれているわけですので、秀丸でテキストを検索しようとして「Ctrl+F」(検索のショートカット)を押すと 1秒ほどタイムラグがあるときなどもありました。
これは、常にそうなるというわけではなく、このタイミングでは秀丸の検索に関する情報がページングファイルに書かれていたと思われ、それによって遅くなっていたものと考えられます。
一度 PCを再起動し直すと、ページングファイルに書かれる情報が変わりますので、それによって「Ctrl+F」を押してもタイムラグなしで表示されるようになりました。
 
ページングファイルも万能ではありませんが、状況を改善させるために設定を変更してみるのもよさそうです。
 
 

ページングファイルを USBメモリ、SSD上に置く

 
ページングファイルをシステムドライブから Dドライブに変えただけでも劇的に状況が改善しましたので、それでも問題ないのですが、HDDが 2台搭載されているパソコンが一般的か?と問われればとてもそうとは言えず、メモリ増設の代わりに HDDを増設してみませんか?ともいうのは忍びないので、違う方法はないか、と考えました。
 
そこで思いついたのが USBメモリをつないでそれにページングファイルを置くという方法です。
 
まず、USBメモリを USBコネクタに接続します。
そして、そこから先の設定方法は、Dドライブにページングファイルを置く方法と同じで、ページングファイルを置く先を USBドライブを指定するだけです。
 
USBメモリは、10GBを超えるものでも安いものでは 2,000円を切っていますし、常時接続することを前提に考えて、USBコネクタに埋め込めるほど小さなものでも 2,000円~3,000円程度で買えますので、非常に汎用的な方法だと考えています。
 
特に、ノート PCの様にメモリの増設や HDDの増設に制限がある PCの場合は、選択肢が限られますが、メモリのために USBコネクタを 1つ占有するくらいであれば許容できるのではないか、と考えています。
 
 
ちなみに、USBメモリのサイズですが、物理メモリの 1.5倍ほどの容量がいいようです。
ですので、私の環境であれば 2.0GBの物理メモリを搭載していますので、1.5倍で 3.0GBとなりますので 4.0GBの USBメモリあれば適量、ということになるでしょう。
 
もちろん、物理メモリが 1.0GBほどしかなく、全然足りてなさそうと感じる場合も 4.0GBほどの USBメモリを試してみる価値はあると思います。
 
 
もちろん、HDDを SSDに変え、そこにページングファイルを置くようにすることも一つの方法です。
HDDに比べて SSDは 50倍~70倍ほど早いと言われていますので、システムドライブとページングファイルが同じドライブ上にあったとしてもさほど気にならないレベルなのではないか、と思います。
 
ですが、まだまだ SSDは容量当たりの単価はまだまだ HDDと比べるべくもない値段ですし、加えて、SSDは HDDに比べてデータの書き込みに対する劣化スピードが速い(寿命が短い)と言われていますので、メモリ不足のために SSDを検討するくらいなら、PCの新調をする方がいいのかもしれませんね。
 
 

ページングファイルの設定方法

 
最後に、ページングファイルの設定方法をお伝えしておきます。
 
まず、設定する画面は「コントロールパネル」-「システム」の画面を開きます。
 
20140610_win_1
 
右側の方にある「設定の変更」をクリックします。
 
20140610_win_2
 
「システムのプロパティ」が開かれたら、「詳細設定」のタブの中の「パフォーマンス」の「設定」を選択します。
 
20140610_win_3
 
「パフォーマンス オプション」の「詳細設定」のタブの中の「仮想メモリ」の「変更」を選択します。
 
20140610_win_4
 
「仮想メモリ」という画面が表示されたら「すべてのドライブのページングファイルのサイズを自動的に管理する」に入っているチェックを外します。
 
続いて、USBメモリのドライブを選択します。
(画面では「G:」を選択していますが、各自の環境に応じて選択してください。)
 
「カスタムサイズ」もしくは「システム管理サイズ」を選択します。
基本的には「システム管理サイズ」を選択し、システムが自動的にサイズを設定する方法で問題ありませんが、USBメモリの容量が大きくなく、USBの利用領域を制限したい場合は、「カスタムサイズ」を選択して必要なサイズを入力します。
 
「設定」を押して設定を反映させます。
 
これで、USBメモリ上にページングファイルを作成することができ、ローコストで劇的なパフォーマンス向上が見込めるでしょう。

 - システム開発関連技術

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

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

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

XAMPPの Apacheが起動しなくなった場合の対処方法

ローカルのXAMPP環境で Apacheが起動しなくなる原因の多くはポートのダブり。その対処方法です。

IEのHTMLソースを秀丸表示で共有メモリへのアクセスが拒否されましたで開けない問題への対処方法

Windows7の IEで HTMLソースを秀丸で表示する際に「共有メモリへのアクセスが拒否されました」のエラーが表示される原因と解決方法の説明。

Windows 10パソコンで日付、時間がずれる!原因と時計を合わせる解決方法
Windows 10パソコンで日付、時間がずれる!原因と時計を合わせる解決方法

Windows 10のパソコンでスリープから復帰すると日付がズレる不具合が発生。その時の対応方法の時計の設定やマザーボードの電池の交換の方法を紹介。プラスαの不具合の原因と対応方法を紹介。

XAMPP環境(ローカル環境)の sendmailからPHPメールを送信する設定方法

メールサーバが設定されていない、ローカルの XAMPP環境からメールを送信する方法の解説です。

ロリポップで非常に大きなハッキング騒動がありました。

ロリポップで非常に大きなハッキング騒動がありました。その結果、影響を受けた内容と、それに対してどう対応したか、のレポートです。加えて、何でロリポップサーバを使っているかの紹介です。

XAMPPとは?パソコンにローカル LAMP環境を簡単に設置する方法を詳細解説
XAMPPとは?パソコンにローカル LAMP環境を簡単に設置する方法を詳細解説

パソコンに LAMP環境を簡単に構築することができるパッケージ「XAMPP」。そのインストール方法を詳細解説。インストール後の不具合やカスタマイズ方法についても説明。

RSA暗号の仕組みがすっきりと分かった瞬間

RSA暗号の仕組みがすっきりと分かったその説明を交えながら、RSA暗号の解説をします。

XAMPPにVirtualHostを設定しドキュメントルートを設置する方法
XAMPPにVirtualHostを設定しドメイン、ドキュメントルートを設置する方法

XAMPPにVirtualHostを設定し、DocumentRootを設置する方法を2つ紹介。ポートを指定してアクセスする方法とhostsを設定してドメインでアクセスする方法。エラーの解消方法も解説。

WindowsXPから Windows7にアップグレードして分かったこと

WindowsXPから 7にアップグレードする際に不安だったバックアップ、ドライバ、32Bit版 64Bit版について書いています。

秀丸の現在開いているファイル名をフルパス付で取得する方法をマクロで作成

秀丸で開いているファイル名をフルパス付で取得するマクロを作成。たった1行のマクロながらとっても便利。プログラムを作る方なら作成して置いて損はないマクロですね。