スワップパーティションの重要性


34
  • スワップパーティションの目的は何ですか?
  • ちょうど十分なスワップパーティションがあることを知るにはどうすればよいですか?少なすぎる/少なすぎません。

私のUbuntu PCは典型的なものに使用されます:

  • Web(電子メール、Facebookなど)
  • いくつかの映画
  • ゲームはまれです

投稿された内容では、スワップが多すぎるようです。3GB RAM、300GB HD、およびスワップ用の8GBパーティション。
ランクロ

2
使用されない余分なスワップはあなたを傷つけません、そしてそれを小さくするためにあなたのドライブの1.7%を回収することはおそらく努力の価値がありません。はい、おそらくあなたが使用するよりもはるかに大きいので、心配する必要はありません。
msw

1
また、「将来性のある」スワップパーティションとして見ることができます。システムにメモリを追加しても、スワップを大きくする必要はありません... :)
JanC

回答:


15

スワップパーティションにはいくつかの目的があります。

  • 「バックアップ」RAMとして機能します。つまり、コンピューターがRAMを使い果たした場合、スワップ領域をより多くのメモリの一時的なソースとして使用します。具体的には、未使用のアイテムをRAMからスワップ領域に「スワップ」して、その時点でそれを必要とするアプリケーション用にスペアスペースを残します。これは、ハードドライブへのデータ転送速度が通常のRAMへの転送速度よりも著しく低いため、理想的ではありません。実際には、これはスワップ領域から情報を取得するのがはるかに遅いことを意味します。

  • コンピューターが休止状態になるときに使用されます。ハイバネーションでは、現在の状態のRAMのイメージを取得し(ISOがイメージを表すように)、スワップ領域に保存します。その後、コンピューターの再起動時にこのイメージを再読み込みします。

  • 最も有用であるためには、スワップ領域は少なくとも(RAM * 1.5)である必要がありますが、それ以上をお勧めします。たとえば、3GBのRAMを搭載したシステムでは、7.2GBのスワップ領域があります。


何かを使用しない場合、ディスクにスワップし、使用するものにRAMを使用するの理想的です(たとえば、スワップにあまり使用しないCUPSまたは他のデーモンを移動すると、ディスクをキャッシュするためのメモリが増えます)実際に多く使用されるデータ)。
JanC

-1; 「(RAM * 1.5)さらに推奨されますが」-デスクトップPCの場合 あなたは長年にわたって間違っていた従来の知恵を繰り返しています。

@ user280493あなたがコメントしたとき、答えは何年も前のものであったことに注意する価値があります。
クリスフォール

7

これは、スワップパーティションの「適切な」サイズに関するこの質問とほぼ同じです。私の答えからの同じ情報の多く適用されます-基本的に、休止状態にしたい場合は、一般的にスワップスペースを少なくともRAMと同じ大きさにしたいのですが、それ以外は1または2GBのようなラウンド数で十分です。スワップはRAMよりも非常に遅いため、数ギガバイトのスワップを埋めると、コンピューターはほぼ確実に使用できなくなります。

スワップパーティションも実際には必要ありません。スワップファイル(メインストリームLinuxファイルシステムで利用可能)は同じパフォーマンスを提供し、十分な容量がないと判断した場合はスワップスペースを簡単に追加できます。


4

ここでスワップに関する非常に深い情報

ラムの2倍と言う人もいますが、個人的にはこれをお勧めします:

スワップ= 1.5 X合計RAM

例:

RAMが2Gbの場合->スワップ= 1.5 x 2 = 3

PD:Ubuntu DesktopはSwap to Hibernateを使用します(PCオフ、電源不要、プログラム状態の保存)。休止状態が重要な場合は、RAM +スワップオーバーフローよりもスワップ領域を増やしてください。


2

このfreeコマンドは、使用しているスワップの量を示します。このマシンの例:

$ free -m
             total       used       free     buffers     cached
Mem:          1947       1863         84         312        758
-/+ buffers/cache:        792       1154
Swap:         4000          3       3997

2GB(1947m)のRAMがあり、システムがそのほとんどを使用したことを示しています。ただし、I / Oバッファーには312mが使用され、残り(758m)はシステムがディスクキャッシュで一杯にすることを決定しています。

ディスクキャッシュは、コンテンツに低速のディスクではなく高速のメモリを使用しているため、興味深いものです。内容はディスクから取得できますが、必要に応じて保持されます。これはまた、システムが代わりにディスク上のデータを見つけることができることをシステムが認識しているため、必要に応じて即座に回収できるメモリが758mあることを意味します。

バッファリングとキャッシュがなければ、RAMの半分(1154m)を使用できることを示す2行目があります。

3行目は、非常に大きなスワップパーティションがあり(そこにあり、何もしていなかった)、そのうち3mが使用されていることを示しています。これは、カーネルがすぐに使用する必要があるとは本当に期待していないものなので、「バックポーチ」に張り付いていました。

一方でfree、今あなたのスナップショットを提供し、vmstatあなたに実行されている画像を与えることができます:

$ vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0   3588  86236 316524 769132    0    0    14    13  126   81  4  1 95  0
 0  0   3588  83872 316532 770512    0    0     0    20  264 1229  3  1 96  0

そこには多くの情報がありますが、興味深いのは、スワップイン(si)またはスワップアウト(so)トラフィックがないことです。つまり、過去10秒間はスワップをまったく使用していません。


0
  • スワップ領域は、限られたスペースのRAMメモリをサポートするために使用されるハードディスク領域の一部です。RAMのサイズは限られているため、一部のアプリケーションでは使用可能なRAMスペースよりも多くのRAMが必要です。その場合、このスワップスペースはRAMのサポートに使用される仮想メモリとも呼ばれます。
  • RAMの速度に比べて速度が遅くなります。大きなアプリケーションを実行すると、そのアプリケーションの最も最近使用されていない部分がハードドライブのスワップエリアにスワップされ、必要なときにスワップエリアからスワップバックされます。これにより、オペレーティングシステムは実際よりも多くのRAMを持っているように感じます。
  • これは、オペレーティングシステムのインストール中に作成されるハードディスク上の専用パーティションです。
  • RAMの2倍のサイズのスワップ領域を作成するとよいでしょう。
  • 次のコマンドを使用して、使用済みおよび使用可能なスワップ領域を確認できます。

    $ cat /proc/swaps 
    Filename                Type        Size    Used    Priority
    /dev/sda10              partition   7812092  16      -1
    

0

遅いハードドライブを搭載したラップトップを持っていますが、比較的高いRAM(8GB)を持っています。このセットアップでは、次の理由でスワップドライブが逆効果になることがわかりました。

  1. アプリケーションをスワップから復帰させるのは遅く、アプリケーションをゼロからロードするのに匹敵します。予期せず停止することがある環境よりも、アプリケーションを閉じてリロードする必要がある場合でも、迅速に応答する環境が必要です。

  2. 休止状態にする機能が必要な場合は、大量のデータをディスクに書き込むことを意味します。それは一定になるバッテリーの消耗、それが持続的に(のデフォルトの動作で行われた場合swappinessを 60)、またはそれだけ(swapinessを減らすことによって)休止時に行われた場合、それは実際に休止状態に長い時間がかかるだろう。ディスクにサスペンドするのではなく、RAMにサスペンドすることで十分なことがわかりました。数日間中断されたままになる可能性があり、完全な休止状態よりもはるかに迅速に中断解除されます。

  3. ハードドライブは低速であるため、1GBのRAMをディスクキャッシュ用に確保しておき、速度を上げるためにメモリを効率的に交換することを好みます。これにより、マシンの動作が速くなりますが、アプリケーション用に8GBのRAMのうち7GBしか使用できません。私がそれを達成するために使用するソフトウェアは、RAMの88%が使用されたときに古いブラウザタブを強制終了するEarlyoomのフォークです。時々、削除された古いブラウザのタブをリロードする必要があります。

このアドバイスはいつ適用されませんか?

  • あなたが持っている場合は高速なハードディスクドライブ、またはSSDをし、電池の消耗についての少数の懸念を持っているし、私は上記で概説した欠点は適用されません。(初期のSSDには摩耗の問題があるかもしれませんが、2018年以降に販売されたSSDは問題ないはずです。)

  • マシンのRAM非常に少ない場合、またはメモリを大量に消費するアプリケーションを同時に使用する場合は、デメリットに関係なく、スワップを使用して作業を完了する必要があります。これは、メモリが安価になり始める前の、スワップの主な使用例でした。

  • 休止状態本当に必要な場合(おそらくラップトップをサスペンドし、充電せずに数日後に再び開く場合)、スワップドライブが必要です(少なくともRAMと同じサイズを推奨)。

警告:

  • 長時間実行し続けるソフトウェアの一部(特にOSおよびデスクトップ環境)は、実際に二度と使用されないコードをメモリにロードします。これらのページはスワップに移動することができ、二度と引き抜く必要がないため、前述の不利益を回避できます。このため、小さな 512MBまたは1GBのスワップファイルを作成し、メモリの未使用ページをスワップアウトすることがあります。これにより、アプリケーション用のRAMが少し増えました。(必要:このスワップファイルのサイズを調整するために、スワップチャーンを測定する手法。)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.