• ベストアンサー

スワップメモリについて

 おせわになります。  スワップメモリというハードディスクの一部をメモリがわりにする方法がありますが、 Windowsですと推奨の設定が出きますがハードディスクに空きがあるならたくさん確保した方が良いと単純に考えてしまうのですが、何に対して推奨なのか?なぜより多くとらないのでしょうか? よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nijjin
  • ベストアンサー率27% (4700/17406)
回答No.5

HDDが遅いからです。 そして、スワップメモリはメモリが足りないから起こるのです。 メモリが足りないからHDDにその情報を書き込んで、先に行う処理が終わったらHDDから読み込む。 これだけでメモリだけで行うより10倍以上時間がかかるかもしれません。 1分で終わるのが10分もかかるようになりHDDの故障率が上昇すればリスクしかありません。 元々、Windows3.xの時に少ないメモリでも動かせるようにと搭載されたものだったと思います。 当時はメモリが10MB(GBではない)にも満たない上にMS-DOS上で動いていましたから640KBと言うメインメモリ制約もありました。 また、Windows9.xまではMS-DOSがベースとして動いていました。 推奨とは、PCに搭載されているメモリの量とHDDの(開き)容量で決まります。 バランス良くメモリ不足が発生しないようになるべく高速に動くようになっています。 これを別の形で搭載したのがReadyBoostといえるかもしれません。 Windows7やVistaの64bit(4GB以上のメモリ)になってからハードスペックがOSの求める内容を満たすようになり 写真やスキャナーなど極端に大きなファイルを扱わない限りスワップメモリを気にする必要はなくなりました。 32bitでは3.xGBの壁があるので避けられません。 ReadyBoostも十分な速度とメモリがあればOSの自動判断で利用不可能になります。 HDDをSSDに、あるいはスワップメモリのドライブをSSDにすることによりスワップの速度を上げることは出来ますがオンメモリでスワップが発生しないほうが高速です。

shikibu-to
質問者

お礼

回答ありがとうございました。 確かに昔はそうだった気が・・・。 とてもわかりやすかったです。

その他の回答 (5)

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.6

最速じゃないの。問題は最適値なんですよ。 仮想メモリは物理メモリの2倍から3倍という値は各社ベンダーが推奨している数値です。 てか、OS は自動設定ではデフォルトで物理メモリの 1.5倍を確保するんです。 それでも足りない時は更に記録域を最大 2.5倍まで取る。 さらに足りないなら、都度必要なだけ確保する…そういう動きになります。 で、最適値は利用者によって異なるのは理解できますか? 例えば、普通は 1Gバイトとか 2Gバイト程度の物理メモリしか搭載していません。 そしてタスクマネージャなどメモリ使用状況を確認できるソフトを使い、実際に確認した 【ページファイル使用量の最大値をもとに固定】 することが最もパフォーマンスが高くなります。 無駄にでかくすると、そのでかい領域にアクセスするために CPU側の計算負荷が上がるんです。(若干ですけど) ハードディスクへのアクセス以前に CPUでブレーキを掛けてしまうと言えば分かりやすいかな。 ちなみに、物理メモリを 12Gバイト搭載しているパソコンで、メモリスワップなんて無い環境において 仮想メモリは必要かと言えば…必要なんです。128Mバイト程度で良いんですけどね。 どんなに遅くなっても良いから、メモリをめいっぱい使いたいという目的があれば、 好きなだけ仮想メモリを確保しても良いでしょう。…推奨しませんけど。 使用するメモリ量の 1/3.5倍の物理メモリを確保するようにメモリを増設すると丁度良いのかもしれません。 …自分のパソコンの 12Gバイトのメモリはハッキリ言って無駄な部分が多いんだな…でも満足。

shikibu-to
質問者

お礼

回答ありがとうございました。 確かにそれだけあれば何の問題もなく動作しそうですね。

  • bajutsu
  • ベストアンサー率20% (139/693)
回答No.4

HDDは、メモリと比べて転送速度が桁違いに遅いからです。 HDDは、速いモデルでも150MB/秒程度なのに対し 最近のDDR3-1333メモリは、約10GB/秒にもなります。 この差、60倍以上ですよ。 つまりは、スワップメモリは使えば使うほど、足を引っ張る要因になり パフォーマンスは落ちてしまいますよ。 なので、どーしてもメモリが足りない時に ちょっとだけ借りる程度にするのが好ましいですし、 スワップが頻繁に発生するなら、メモリを増設するほうが効果が高いです。

shikibu-to
質問者

お礼

 回答ありがとうござます。 なるほど具体的にこんなに違うものなのですか、 具体的な数値については勉強不足でした。  ありがとうございました。

回答No.3

別に多く取っても良いのですが、ハードディスクの記憶容量をいくらか取ってしまうというわかりやすいデメリットがあります。 で、そのデメリットに対してメリットが大きくないのが、スワップ領域をあまり多く確保しない理由です。 前提として、ハードディスク(スワップ領域)へのアクセス速度は物理メモリへのアクセス速度の1000倍程度遅い、ということがあります。このため、スワップ領域を使用した段階で、コンピュータの処理速度は極端に低下してしまいます。 スワップ領域は使わないに越したことはないのです。 そして、スワップ領域は、「OSが物理メモリ量を超えてメモリを確保しようとしたときに使用される領域」です。最近はメモリ量を多く積むマシンが増えてきて、通常の使用範囲ではスワップ領域をそこまで多く使いません。 スワップ領域を必要以上に多く確保するメリットも、あまりないのです。 なおスワップ領域の基準は「物理メモリ量と同じかその二倍程度」と言われていましたが、これは昔の基準なので、今どの程度がよいのかはあんまりはっきりしません。

shikibu-to
質問者

お礼

 回答ありがとうございます。 なるほど、みなさんよく理解して使用されていますね。 私も、勉強しないと反省しました。 これからは思考錯誤してみます。

  • MNH10W
  • ベストアンサー率48% (2859/5927)
回答No.2

>何に対して推奨なのか? 搭載しているメモリ量です。 >なぜより多くとらないのでしょうか? たくさん取れば良いと言う物ではないから HDDはメモリに比べて読み書き速度が遅いデバイスです スワップする時点で既に処理が遅くなっているんですよ。

shikibu-to
質問者

お礼

ご回答ありがとうございます。 そういうことだったのですね。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

(´・ω・`)ん? あくまでも推奨値。自動で確保するようになっているとめいっぱい取ることもある。 推奨値は、物理メモリの2倍から3倍。 自動で確保すると、場合によっては5倍以上の記録域を取ることがあります。 そこまで行くと物理メモリの絶対量が不足していると言うことになりますし、動作も遅くなります。 例:メモリを256Mバイト搭載した Windows XP がスワップ領域を自動で確保するように設定されていて   Internet Explorer と Firefox を同時に起動させると…   OS は ハードディスク上に 1Gバイト以上のスワップ領域を確保しに行きます。   セキュリティソフトも起動しているので、とても遅いです。

shikibu-to
質問者

お礼

 回答ありがとうございました。 おかげさまで、問題が解決しました。 まずは物理メモリの増設を重点に考えます。

shikibu-to
質問者

補足

早速のご回答ありがとうございます。 >そこまで行くと物理メモリの絶対量が不足していると言うことになりますし、動作も遅くなります。 基本的な質問で恐縮ですがあくまでも物理メモリの補助と考えた方が良いのでしょうか? 物理メモリの容量に対して最速で働いてくれる設定、推奨が必ず裁量でない場合は物理メモリが256Mバイトでしたらその3倍など一般的な目安的なものはありますか? 質問質問になってしまいすみません。

関連するQ&A

  • メモリのスワップについて

    メモリがいっぱいになりスワップを使用しだすと、パソコンが重くなりますが、、 メインメモリがいっぱいになると、使用頻度の低いメインメモリ領域のデータをハードディスク領域に移して、空きを作り、メインメモリを使えるようにする。というのがスワップに対する理解なんですが、ということはそのスワップされた使用頻度の低いデータが、たとえばこの場合Wordのデータだとすると、その後Wordを使用しなければ、ハードディスクにアクセスしないわけだからその後は、スワップによってパソコンが重くなったと感じることはないのでしょうか?

  • 最適な仮想メモリサイズは?

    現在 Xp マシンをメインに使用しています。 それでインストール時にEドライブ(ハードディスク)に4096MBの仮想メモリを設定しました。 今日何気にチェックしたら 推奨 4870 MB と表示されていました。 HDの空きはかなりあるので、仮想メモリサイズはいくつにしてもいいのですが、あまり確保すると 起動時に遅くなる?とか何か弊害がありそうで、どのくらいに設定しなおすか悩んでいます。 実際のところ、仮想メモリはどのくらい確保するのが一番最適なんでしょうか? ちなみにメモリは8GBつんでいて、4GBをラムディスクにしてテンポラリに使用しています。

  • 物理メモリとスワップメモリの値を調べる方法(win)

    windows XP Proにおいて、 物理メモリとスワップメモリの値を調べる方法 を知りたいです <(_ _*)>

  • 大容量のメモリ確保をスワップ無しで行う方法について

    教えてgooの識者のお知恵をお借りしたくご質問させていただきます。 表記の通り、C&C++を用いて、大容量のメモリ確保をスワップ無しで行いたく考えております。 質問の内容としてましては、(1)、(2)の2点があります。 (1) 「VirtualAllocに失敗するという理由としてどのような原因があるのでしょうか?」  VirtualAlloc関数に、引数MEM_RESERVE、MEM_COMMITを渡してメモリ確保を行ってみたのですが、  メモリ確保に成功するPCと成功しないPCが存在し、理由が分からずにいます。  (いずれもタスクマネージャなどで確認すると物理メモリの空き容量は1.3GB程度空いているPCです。)  (確保に失敗するPCで確認してみたところ、650MB付近までは確保に成功します。) (2) 「VirtualAlloc以外にスワップを回避して大容量のメモリを確保する方法はあるのでしょうか?」  newでは確保ができるのですが(当然なのかもしれませんが)、  ページングファイルに移動されてしまうと処理が重たくなってしまうので採用できない方法だと考えています。 プログラムの内容は、外部インターフェースからの入力を待つために常駐し、入力した900MB分のデータを高速に処理するというものです。 900MBのデータ量は必須で、高速かつ安価なPC構成とする必要があるために全ての処理をメモリ上で行う方法を選択しました。 ハードウェアは2GB以上のメモリを搭載、Windows XP SP3 32bitのPCに限定しています。

  • 物理メモリとページファイル及びスワップについて

    参考サイト:http://www.atmarkit.co.jp/fwin2k/win2ktips/076pgfilesize/076pgfilesize.html メモリについて調べていて疑問に思ったことがあるので質問させてもらいます。 ・今まで仮想メモリというのは物理メモリの不足を補うために適時HDDに確保された領域(ページファイル)のみを示す用語だと認識していたのですが、そうではなく「仮想メモリ=物理メモリ+ページファイル」という実質使用可能なメモリの総量という意味の言葉ですか? ・例えば1GBや2GBなど、十分な物理メモリがあるとき、トータルで使用されるメモリがそれよりも少ないならば、HDDに領域を確保しない。つまり物理メモリを超えそうになったときに初めてページファイルは作成され、物理メモリで足るようになれば解放されるものだと思っていました。しかし、参考サイトを読んだ限りでは「ページファイルは必要に応じて生成されるのではなく、恒常的に存在し、使用頻度の低いデータはメモリにいくら空きがあったとしてもスワップされる。」と認識しました。必要に応じてページファイルが適時拡張されるのはいいのですが、ページファイルはどんなに物理メモリが使用状況に対して十分でも常に存在するものなのですか?また、物理メモリが十分に足りていても使われないデータはスワップアウトされてしまいますか? ・ページファイルはデフォルトで物理メモリの1.5倍の大きさがあるらしいのですが、当然このファイルがHDD上にとった領域は別のファイル(.txtなど)の保存領域としては利用できませんよね? 長くなりましたが、以上4点についてご教授お願いします。説明不足がありましたら追記しますのでよろしくお願いします。

  • メモリーとスワップ

    Windows2000のデスクトップPCを利用しています。 メモリーは、約830M(512M+256M+64M)積んでいます。 グラボは、PCI接続ですが、一応128Mのものです。 必要のないバックで動くようなものは、ほとんど止めてあります。 私の認識としては、空きメモリーの容量が足りなくなるとスワップが発生する、っと思っておりました。 しかし、ブラウザでネットを見ながら、動画をモニターの端っこで再生したりしていると、スワップが発生します。 メモリの空き容量が600M近くあるにもかかわらずです。 そうなると、動画もスムーズに再生されませんし、ブラウザの画面の切替の速度なども極端に低下します。 どうすれば、スワップが発生せずに、メモリーの空きの部分を使うようにできるのでしょうか。 これでは、メモリーをたくさん積んでる意味がないですよね。 Windowsは、メモリーの容量をアプリケーションに割当てるような設定見たことないし。 メモリーを掃除するツールを常駐させてみましたが、状況は変わりません。 掃除するまでのなく、空き容量はあるんですが^^; 何かアドバイスいただければありがたいです。 よろしくお願いします。

  • ハードディスクとメモリの空き容量の必要性について

    PC初心者です。あることに使おうとしたら、、 ・265MB以上の空きRAMメモリ ・50MB以上の空きハードディスク を推奨、、となってます。 私のパソコンは、NECのLAVIEGベーシックタイプです。 空き容量などを調べてみたところ ハードディスク容量・・22.35GB ハードディスクの空き容量・・16.94GB  メモリ容量・・222.5MB と出てきたのですが、、GBとMBの違いすら分かりません・・。 この容量では上記のことに使うのは難しいのでしょうか? 常駐ソフト?を減らせばOKですか?? 推奨ですから必ずしもその空きがなくても大丈夫なのでしょうか? また、メモリやハードディスクを増やしたほうがよい場合、初心者向けの良い方法でなおかつ低コストの方法も教えてくださると助かります。 WIN XP HOME E です。 では回答よろしくお願いします!

  • メモリ

    メモリの容量が一杯にになった時の為にHDDに仮想メモリ領域という一時的にメモリ領域を確保する部分があるようですがその場合スワップとか起こって動作が遅く不安定になるそうですがデバイスマネージャで足らないメモリ容量を確認しメモリ増設すればHDDの仮想領域も必要なくなり結果的にスワップとかも起こらなくなると思いますがどうでしょうか?それとメモリ増設しただけでHDDの仮想領域にアクセスしないようになるんでしょうか?何処か設定が必要でしょうか?よろしくお願いします。

  • System Explorerのスワップ使用量

    大変申し訳ありませんが、System Explorerのスワップ使用量の表示が何を意味しているのか分かりません。 私のPCはメモリが2ギガであり、メモリ使用量は6割~7割なんですが、スワップ使用量が4割程度あります。 VistaのSP2、です。 本来スワップはメモリの限界を超えた際に、ハードディスクから読み書きする際に使うものとの認識のため、メモリに余裕があるのに、スワップされているということが理解できません。 大変恐れ入りますが、もしご存じの方がいましたら、宜しければご教授いただければ幸いです。 宜しくお願いします。

  • スワップファイルの設定

    以前にこのOKWebでだったと思うのですが、 「スワップファイルを極力使用しないようにして 物理メモリを有効活用する」という設定を レジストリエディタか何かで行う方法が紹介されていたと 思います。(何かの設定数値を"1"にするというやつ だったと記憶していますが・・・) その設定を行ったところ、通常サイズのファイルを 開く際には全く問題ないのですが、スキャナで 高解像度での写真の取り込み(ファイルサイズが 100MBを越えるような)を行ったりすると、かえって 動作が遅くなる(ほとんど止まっている)ように なってしまい、とりあえず設定を元に戻したいのですが、 どこをいじればよいのかわからなくなってしまいました。 検索で心当たりを見てみたのですが、結局発見できず、 やり方をご存じの方がいらっしゃったら教えてください。 ちなみに、システムのプロパティの仮想メモリの項目は 「仮想メモリをつかわない」にはチェックははいって いませんが、メモリ管理ツールなどで見ると、たしかに スワップファイルは0MBの状態です。