• 締切済み

Linux での swap の容量について

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

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

それで合ってると思います。 メモリの2倍というのは昔実メモリが4MBとか8MBとかしか無い時代に、swapを50MBとかしてもページング多発で性能が出ないので、swapを実メモリ倍のの8MBとか16MBとかに抑えておきなさい(当然メモリ食いのアプリは動かせない…動かしたければ実メモリを増やせ)ということから、2倍程度という言葉がひとり立ちしてしまったんだと思います。 メモリには一般のアプリやデータのようなページング可能な領域と、OSのコアな部分のページング不能領域(またはページ固定領域…絶対ページアウトされない)がありますが、 (仮想メモリ全体容量-ページ固定領域量)÷(実メモリ量-ページ固定領域量)を、VR比(virtural real ratio)といい、これが大きくなるとページング多発でパフォーマンスが低下します。これの目安がおおよそ2くらい。 OSの使用量+同時稼動させるアプリの使用量の総和が実メモリ以下ならswapは要りません。ただ、そんな計算は事前にちゃんと出来ないでしょうから、最初はswapを作らないで、メモリ不足が出てから作るか、ある程度(2倍は要らないでしょうが)作っておいて使用量をモニタして不要そうなら削るか、どっちでもいいと思います。 また、総仮想メモリ量=実メモリ量+SWAP量のOSと、総仮想メモリ量=SWAPの量のOS(つまり最低限実メモリ分だけのSWAP域が必要なOS)とがありますが、linuxは前者、メインフレームや少なくとも昔のunixは後者だったと思います。前者のOSでの「同程度」と後者のOSでの「2倍程度」は同じ意味ですね。

inetd
質問者

お礼

回答ありがとうございます。 するとやはり本 (または資格試験そのもの) が間違っているということになりますかね。

inetd
質問者

補足

しかし資格試験の本に書かれていたというのがどうも気になりますのですいませんが「思う」という以上の回答を待たせて貰うことにします。 LIPC関係者の方や先に挙げた本の著者や関係者の方、あるいは Linux に思い切り詳しい人でこの件に関して完全に断言する形で回答することの出来る方がいらっしゃいましたら回答をお願いします。

関連するQ&A