• ベストアンサー

スワップメモリについて

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

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

  • ベストアンサー
  • nijjin
  • ベストアンサー率27% (4811/17779)
回答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/5926)
回答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