私のUbuntu PCは典型的なものに使用されます:
スワップパーティションにはいくつかの目的があります。
「バックアップ」RAMとして機能します。つまり、コンピューターのRAMが不足すると、スワップ領域がより多くのメモリの一時的なソースとして使用されます。具体的には、未使用のアイテムをRAMからスワップ領域に「スワップ」して、その時点でそれを必要とするアプリケーション用にスペア領域を残します。これは、ハードドライブへのデータ転送速度が通常のRAMへの転送速度よりも著しく低いため、理想的ではありません。実際には、これはスワップ領域から情報を取得するのがはるかに遅いことを意味します。
コンピューターが休止状態になるときに使用されます。ハイバネーションでは、RAMのイメージを現在の状態で取得し(ISOがイメージを表すように)、それをスワップ領域に保存します。その後、コンピューターの再起動時にこのイメージを再読み込みします。
最も有用であるためには、スワップ領域は少なくとも(RAM * 1.5)である必要がありますが、それ以上をお勧めします。たとえば、3GBのRAMを搭載したシステムでは、7.2GBのスワップ領域があります。
これは、スワップパーティションの「正しい」サイズについて この質問 とほぼ同じです。 answer there からの同じ情報の多くが適用されます-基本的に、休止状態にしたい場合は、スワップ領域を少なくともRAMと同じくらいにし、それ以外は1のようなラウンド数にしたいです。または2 GBで十分です。スワップはRAMに比べて非常に遅いため、数ギガバイトのスワップをいっぱいにすると、コンピューターはほぼ確実に使用できなくなります。
スワップパーティションも実際には必要ありません。スワップファイル(メインストリームLinuxファイルシステムで利用可能)は同じパフォーマンスを提供し、十分な容量がないと判断した場合にスワップスペースを簡単に追加できるようにします。
ここ スワップに関する非常に深い情報
ラムの2倍と言う人もいますが、個人的にはこれをお勧めします:
スワップ= 1.5 X合計RAM
例:
rAMが2Gbの場合->スワップ= 1.5 x 2 = 3
P.D:Ubuntu DesktopはSwap to Hibernateを使用します(PCオフ、電源不要、プログラム状態の保存)。休止状態が重要な場合は、RAM +スワップオーバーフローよりもスワップスペースを増やしてください。
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秒間はスワップをまったく使用していません。
遅いハードドライブを搭載したラップトップを持っていますが、RAM(8GB)が比較的高いです。このセットアップでは、次の理由でスワップドライブが逆効果になることがわかりました。
swapからアプリケーションを元に戻すのは遅く、アプリケーションをゼロからロードするのに匹敵します。予期せず停止することがある環境よりも、アプリケーションを閉じてリロードする必要がある場合でも、迅速に応答する環境が必要です。
休止状態にする機能が必要な場合は、大量のデータをディスクに書き込むことを意味します。持続的に実行された場合( swappiness 60のデフォルトの動作)、またはそれがバッテリーの定数ドレイン (スワッピングを減らすことにより)休止状態でのみ行われた場合、実際に休止状態になるまでに時間がかかります。サスペンドは、ディスクにサスペンドする代わりにRAMであることがわかりました。数日間中断されたままになる可能性があり、完全な休止状態よりもはるかに迅速に中断解除されます。
ハードドライブが遅いため、1GBのRAMをディスクキャッシュ用に予約しておき、速度を上げるためにメモリを効率的に交換することを好みます。これにより、マシンの動作が速くなりますが、アプリケーション用に8GBのRAMのうち7GBしか使用できません。私がそれを達成するために使用するソフトウェアは、 earlyoom の分岐であり、RAMの88%が使用されたときに古いブラウザタブを強制終了します。時々、削除された古いブラウザのタブを再読み込みする必要があります。
このアドバイスはいつ適用されませんか?
高速ハードディスクドライブ、またはSSDがあり、バッテリーの消耗に関する懸念が少ない場合、上記で説明した欠点は当てはまりません。 (初期のSSDには摩耗の問題があるかもしれませんが、2018年以降に販売されたSSDは問題ないはずです。)
マシンのRAMが非常に少ない場合、または複数のメモリを大量に消費するアプリケーションを同時に使用する場合は、スワップを使用して取得する必要があります欠点に関係なく、作業を完了します。これは、メモリが安価になり始める前の、スワップの主な使用例でした。
本当に休止状態が必要な場合(おそらくラップトップをサスペンドし、充電せずに数日後に再び開く必要がある場合)、スワップドライブが必要です(少なくともRAMと同じ大きさを推奨)。
警告:
次のコマンドを使用して、使用済みおよび使用可能なスワップ領域を確認できます。
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sda10 partition 7812092 16 -1