• ベストアンサー

LinuxのSwap領域は、なぜ実メモリと同等か2倍程度?

TrickOrTreatの回答

回答No.7

たとえばSunOS 4.1.x ( BSD系と分類されるようです) のような古いUnixに実装されていた仮想メモリの機能は実メモリとスワップスペースに壁があり、実メモリの空間を仮想メモリとして利用することができませんでした。 実メモリと同じかそれ以上のメモリというのが仮想メモリ機能を利用する必須の要件でしたので、実メモリと同じか2倍くらいというのが仮想メモリを利用するための目安と考えられていました。 実メモリと同等か2倍程度というのは、このころの推奨されたサイズがそのまま現在も使われているのだと思われます。 現在の Unix や Linux は、実メモリを仮想メモリ空間として利用できるので、スワップエリアのサイズはプロセスが利用する最大メモリサイズの合計を考慮して考えるべきなのですが、これを事前に見積もるのは難しいので、一般的な推奨サイズとして実メモリと同等か2倍程度という目安が使われているようです。 ちなみに Linux ではページキャッシュやバッファキャッシュをできるだけ実メモリ上に残しておこうとする戦略で動作するので、大きなファイルをコピーしたりするだけでのスワップエリアを少し使ってしまうことがあります。 パフォーマンスに重大な影響を及ぼさない限りにおいては、スワップエリアの利用は実メモリを最大限利用していると考えることもできます。 スワップエリアの利用があるから悪いと即断するのではなく、現在動作するシステムへの影響があるのかどうかという点を考慮して判断しないと、コンピュータ資源を浪費する結果となります。

関連するQ&A

  • Linux での swap の容量について

    昔から UNIX では swap の容量はメモリの2倍や3倍がよいと言われていたようですが、 Linux ではそんなことはなく、メモリが多ければ swap なしでも問題なく動くとつい先ほどまで信じていたんですが、「Linux教科書 LIPCレベル1 (ISBN4-7981-0292-X)」という本を買って、swap に関する説明を見たら「スワップ領域は塔載メモリと同程度を確保します。」と書いてありました。 これは一体どういうことでしょうか? 本当に Linux は swap の容量を塔載メモリと同じ程度にしなければいけないんですか? だとするとその根拠はなんでしょうか? p.s. 根拠がなくても資格試験でそういう問題が出て塔載メモリと同じ程度と答えないと点がもらえないというのならそう答えますが、非常に気になります。

  • OSインストール時のWidowsのSwap領域って?(メモリ増設)

    Linuxをインストールする時には搭載メモリの2倍くらいのSwap領域をインストール時に作ったり、あるいは自動インストールでは勝手にSwap領域が作られるのだと思いますが、例えばWindowsXPも同じことをやっているのですか? というのも、WindowsXPをクリーンインストールしようと思うのですが、メモリが少ないので増設するためのメモリをヤフオクで探し中です。でも、早く今ある状態でXPをインストールして使いたいわけで・・・。 仮にLinuxと同じであれば、メモリ128MBを搭載してWindowsXPをインストールすれば256MBのSwap領域が作られてしまって、後からメモリを増設して256MBにした場合、Swap領域が足りなくなる気がするのです。256MBにしてからインストールすれば512MBのSwap領域が作られそうなので。 そもそも128MBのメモリ搭載でWindowsXPをインストールする時と256MBのメモリ搭載でWindowsXPをインストールする時で、Windowsの設定とかに違いは出るのでしょうか。勝手にいろいろ設定されるからよくわかりません。 こんなことを考えている最近です。ご存知の方、教えてください!

  • LinuxのSWAP領域の移動?

    お願いします。 既存のSWAP領域を削除して、新規に別のパーティションにSWAP領域を作成したいです。 SWAP領域を作る事自体は、何となく分かるのですが、そのSWAP領域作成後に 何か設定しないといけないと思うのですが、何をすればいいのでしょうか? /etc/fstab を見ると、SWAP領域の部分が下記のようになってます。 (Linuxは2つ入ってます。質問上、2つの内容を書きます。) RHELv4 x86    LABEL=SWAP-sda7    SWAP    SWAP   defaults  0   0 RHELv4 EM64T    /dev/sda7    SWAP    SWAP   defaults   0   0 sda7が現在のSWAP領域です。 ここでまずは、この設定ですが、例えば新規のSWAPをsda9に作った場合、 単純に sda7 の部分を、sda9 に書き換えるだけでいいのでしょうか? また、2つを比べると、一部記載内容に違いがあるのですが、そこは何故違うのでしょうか? 通常、普通のパーティションの追加の場合、(例えば新規に「/var」を追加など) e2label?コマンドで、ラベルを書き込んだりしたような記憶があるのですが、 SWAPの場合はそういう作業は無いのでしょうか? 以上、長々となってしまいましたが、よろしくお願いします。

  • swap領域の変更について

    こんにちわ。 今、Miracle Linux をマシンにインストールしたのですが、SWAP領域の設定をしないでインストールしてしまいました。 インストール後に、SWAP領域の変更を行う方法がよくわかりません。 どなたかご存知の方がいらっしゃいましたら、ご教授ください。よろしくお願いします。

  • メモリが足りているのにSWAPが発生

    Linuxにおいて、メモリが十分足りているのにSWAPが発生することがあるようなことを聞いたことがあるのですが、どのような場合でしょうか?教えて下さい。よろしくお願いします。

  • swap領域を1GBより拡大したい。

    iMac OS10.5(Intel)を使っています。 Swap領域を1GBより増やしたいのですが、可能でしょうか?可能であれば、そのやり方を教えていただけませんか? ネットの情報によると、「OSXではSwap領域は必要になると自動的に追加されるが、メモリの最大容量・ハードディスクの空き容量の1/4・1GBのいずれか小さい方を選択し容量が決定する」とあります。 これは、Swap領域は最大で1GB(もしくはメモリの最大容量・ハードディスクの空き容量の1/4)まで、という意味なのでしょうか? 私のPCの、/private/var/vm/ 以下にあるSwapファイルのサイズの合計値は、既に1GBに達しているのですが、これよりも増やす方法があれば教えていただけないでしょうか? GISソフト(Grass)で大きなファイルを扱いたいのですが、メモリー不足で動作が強制終了してしまうので、Swap領域を増やして再トライしたいのです。 どなたかアドバイスお願いします。

    • 締切済み
    • Mac
  • Linuxのswap領域の表示について

    RedHatEnterpriseLinuxES4にてサーバーを構築しました。 swap領域は1024MBを取ったのですが、dfコマンドで見ると255MBしか表示されません。 freeコマンドを見ると確かに1024MB載っているようなんですがこれはどういう訳なのでしょう? 既設のRedHatEnterpriseLinuxES4サーバーにおいてはdfコマンドでも1024MBで表示されます。 同じように表示されるように設定する手段は無いでしょうか?

  • swapって?

    Linuxをインストールする途中に、swap領域を設定っていうところがあったのですが、swapとはどういう役目をしているのでしょうか? あと、OpenOfficeをインストールしたのですが、日本語がすべて化けて表示されています・・・。インストールの最初の画面から化けてましたが、ちゃんとインストールする方法はありますでしょうか? もしなければアンインストールしようと思うのですが、僕が持っているLinuxの本では、アンインストールの行い方は一切書かれていません・・・。 それか単純にディレクトリをrmで消せばよいのでしょうか? 宜しくお願いします。

  • Linuxのメモリ管理

    Linuxのfreeメモリとは、Top等のコマンドで見えるfree+buff+cacheと思っていますが、Linuxを使用しているとfree領域がどんどんなくなっていき、buff, cache領域が増加していきます。 free領域が枯渇しそうになって(表示上10Mぐらい?)いて、swapdとかが動作しているにもかかわらず、buff, cacheを開放したりしないのでしょうか? この辺のLinuxのメモリ管理方法をご存知の方、いらっしゃいましたら御教授願えませんでしょうか 掲載HP等でも良いので情報頂ければ助かります。 宜しくお願い致します。

  • パーティション空き領域の結合

    /dev/sda1 1GB ....(1)SWAP領域 /dev/sda2 3GB ...."/" /dev/sda3 3GB ...."/home" /dev/sda4 10GB ....(2)空き 上記構成にパーティションを切り、Linux(ディストリビューションはSUSE)をインストールしたのですが、 (1)のSWAP領域を削除し、(2)の空き領域といっしょのパーティションとして別OSを入れようとしたのですが、 (1)のSWAP領域を削除しただけでは、(2)の空き領域とは別パーティションとして認識されてしまいます。 /dev/sda1 1GB ....(1)空き←SWAP削除して。 /dev/sda2 3GB ...."/" /dev/sda3 3GB ...."/home" /dev/sda4 10GB ....(2)空き 下記のように(1)の空き領域を(2)の空き領域に移動させることはできますか? /dev/sda2 3GB ...."/" /dev/sda3 3GB ...."/home" /dev/sda4 11GB ....(2)空き+(1)空き SWAP領域作成せずにパーティション切りなおしてLINUX再インストールは できればしたくありません。 ご教授お願いします。