スワップが多すぎませんか?


16

スワップパーティションが大きすぎるのではないかと思っていました。はいの場合、スワップパーティションが大きすぎるのはいつですか?スワップパーティションが大きすぎる場合のマイナス面/悪影響は何ですか(ディスクスペースが十分にある場合でも)。

「いいえ」の場合、推奨されるスワップスペースよりも多くの利点がありますか?


5
明らかな欠点は、ディスク容量を浪費することです。OTOH:「多すぎる」スワップ(4GBシステムで30GBなど)がある場合、アプリの誤動作によりメモリ不足が発生し、システムの速度が低下します。正常に動作するアプリ(メモリリークなし)は、単にそれを使用しません。(これは簡略化されたビューです。)
PerlDuck

私は@PerlDuckに同意します-「スワップが多すぎます」はディスクスペースを使用するだけです。swapの使用を開始すると、システムの動作が遅くなります。その場合、実行するアプリの数を減らすか、アプリの重量を軽くするか、RAMを増やします
Panther

私は知っているので、あなたが十分なRAMを持っているなら、あまりにも多くのディスクスペースを使用する以外に欠点がありますか?PerlDuckによると、オフコースの「誤動作」アプリを除きます。
An0n

1
VTD編集のすべての質問は、厳密な理由を重複からトピック外に変更するのが広すぎることを正当化します。OPは明らかに不明瞭ですが、メタまたはチャットルームの方が議論に適しています。
WinEunuuchs2Unix

3
@PerlDuck(およびPanther)が何を話しているのか分からない場合、事実上無制限のディスクスペースがあったとしても、スワップするためのスペースを増やすと、終了するべきプロセス、またはそれ以外の場合迅速に処理されるプロセスになります自動的に終了し、最初にシステムを長時間クロールするまで遅くします。PerlDuckのコメントは、答えとしても機能すると思います。最終的にこの質問を再開する場合、おそらく、必要以上に多くのスワップを行うことの欠点について答えを追加できます。欠点があるからです。
エリアケイガン

回答:


8

番号

RAMを増やす方法としてスワップを見ることができるので、一見するとあまり多くのスワップを持つことはできません。実際には、RAMを増やすことはなく、次のように振る舞います:8 GBの実RAMとたとえば24 GBのスワップスペースが構成されている場合、プログラムは最大8 + 24 = 32 GBのメモリを割り当てて使用できます最初はいいですね。

だが

メモリリークのあるアプリケーションや、実際に8 GBのメモリで実行するように作られていないアプリケーション(ビデオ編集など)を実行すると、これらのアプリケーションはそのスワップスペースの使用を開始し、スワップが遅くなります。これらのアプリケーションで使用されているスワップスペースが多いほど、ディスクとの間でメモリを移動するだけでシステムがビジーになります。これにより、システム全体の応答性が大幅に低下し、ユーザーエクスペリエンスが低下します。

最終的に-スワップ領域が使い果たされると-一部のアプリケーションはメモリ不足の状況に直面し、カーネルのOOM_Killerによって殺されます 。

ウィキから:

最近のコンピューターでの典型的なOOMのケースは、潜在的なバッキングデバイスがすべて使用されているため、オペレーティングシステムが仮想メモリを作成できない場合に発生します。

結論

したがって、多すぎるという1つの欠点スワップスペースが、このOOMの状態が遅くなり、システムが遅れて応答しなくなるまでの時間が長くなることです。

もちろん、明らかな別のマイナス面はディスク容量を浪費することですが、最近ではそれほど重要ではないかもしれません。


エッジケースを考慮する場合は+1。個人的には、冬眠はクマのためであり、私のシステムはそれのためにあまりにも忙しいので、私は大きなスワップファンではありません。;-)乾杯。
オタク長老

@ElderGeek LOL。実際、Eliah Kaganは私の単純なコメントを答えに変えました。彼は、スワップが多すぎることの前述の欠点は重要なことであり、他の人にとっても重要かもしれないと私に確信させました。私はあなたと一緒にいて、ほとんどスワップを設定しておらず(8GB RAMで2GB)、ほとんど変更されません。
PerlDuck

同様の設定で同様の結果が得られましたが、2xスワップのがついに消滅することを願っています。
オタク長老

5

大きなスワップスペースに直接の欠点はありません。カーネルによって管理される方法では、スワップスペースの量が十分な量を超えて増加しても、パフォーマンスにはまったく影響しないか、無視できるほどの影響しかありません。

「大きすぎる」スワップ領域の唯一の欠点は、その領域をストレージに使用できないことです。


1
@ An0n:現在マシンに接続されている〜6 TBをすべてスワップスペースとして割り当てるのは、かなり大きなマイナス面になると思います。すべての音楽をどこに置くか…?
デビッドフォースター

2
@ An0n:起動するだけで有用なデータを保存しないことができるのであれば、コンピュータは何が良いでしょうか?それは高価なスペースヒーターのように聞こえます。
デビッドフォースター

1
@ An0n:確かに、私も同じように思いましたが、あなたはその点を見逃しています。有用であるためには、コンピューターが使用可能なシステム状態(ブートを含む)に到達でき、ユーザーが個人データに使用できるストレージにアクセスできる必要があることに同意できると思います。そのためには、スワップ領域が占有されていないことが必要です。
デビッドフォースター

2
もちろん相対的です。「多すぎる」が相対的であるように。ブート可能なシステムがあり、すべての空き領域をスワップ領域として割り当てると、システム構成を変更して空き領域を増やすまで空き領域が不足するため、役に立たなくなります。その意味で、スワップ空間はその間「多すぎる」ことになり、その間システムは役に立たなくなります。とにかく、私はあなたと言葉の意味論を議論するためにここにいるのではありません。
デビッドフォースター

1
@ An0nここでポイントを強調するために、スワップスペースは他には何も使用できないスペースです。ディスクストレージスペースには費用がかかります。ディスク領域が限られている場合(32GBのみ)、プログラムをインストールし、音楽などのファイルを書き込むために、できるだけ多くの空き容量を確保する必要があります。一般に、人々はその理由でスワップを最小限に抑えようとしますが、他の理由はありません。スワップは、システムが効率的に実行を続けるために必要なものであり、そうでなければユーザーにとって価値のないものです。一般に、システムに必要なリソースのみを使用させ、十分に遊べるようにします。
ザンナ

4

ディスクの空き容量が少ないこと以外の欠点はありません。今日では、RAMの2倍という概念はほとんどのシステムで時代遅れになっていると思います。RAMの揮発性のためにデータを失うことなくPCを休止状態にする機会を与えるために、ラップトップのスワップメモリ​​には通常同じサイズのRAMを使用することをお勧めします。

スワップパーティションに1倍を超えるサイズのRAMを使用することを検討する唯一のケースは、RAMサイズを短時間でアップグレードする場合です。または、ある種のキャッシュに格納するシステムを使用する予定の場合、まったく同じ時点で使用されていないプログラムが使用するメモリの量。

私のポイントが十分に明確であり、スワップメモリ​​が多すぎるために問題が発生することはないと思います。

ごきげんよう!


2
単一ユーザーのデスクトップでRAM> 2-4 Gbの場合、スワップはまったく使用しません。
パンサー

1
@Pantherどうして?そして、それを使用する方法や時期についてではありません。そのサイズと使用方法について。
An0n


@ElderGeekこんにちは、私はそれを考慮しませんでした。私はあなたの答えが好きです、私はメモリリークの問題について知りませんでした!
-zurg

2

ハイバネーションに実際に必要なSWAPはどれくらいですか?

休止状態を使用する場合、SWAPサイズにRAM x 2が必要であるという誤解です。スワップサイズは、インストール済みRAMではなく、使用済みRAMのサイズである必要があります。通常、スワップサイズは、インストールされているRAMの2/5である必要があります。使用に必要な最小限のRAMを調べるには:

$ cat /sys/power/image_size
3153907712

この8 GB RAMマシンでは、休止状態にするには3 GB以上が必要です。

image_size失敗のリスクがある小さなスワップサイズの値を調整できます。これを調整して、スワップサイズを大きくし、場合によっては休止状態の速度を上げることができます。

リファレンス:https : //wiki.archlinux.org/index.php/Power_management/Sus​​pend_and_hibernate


1995年には16 MB RAM、2018年には16 GB RAMの異なるルール

16 MBのRAMがあった時代には、720 MBのハードドライブで32 MBのスワップ用に2つ使用するのが理にかなっていました。この1995年のワシントンポストの記事にある RAMとHDDの歴史。

23年後、その1995年のいくつかの技術記事(私は見つけられませんでしたが)が、新しいユーザーを誤解させることがあります。しかし、SWAP = RAM x 2を推奨する2007年の記事を見つけました。

1995年には、760 MB HDDからの32 MBスワップはHDDの4%でした。実際、スワップパーティションは1995年に多く使用された可能性があります。2018年の現在、256 GB SSDの32 GB SWAPの16 GB RAM x 2は、SSDの13%を使用しているのと同じ意味を持ちません。今日、OOM-Killerをテストするときに強制的にいっぱいにしない限り、8 GB SWAPパーティションはまったく使用されていません:Google Chromeは、コンピューターをほぼ停止するまでメモリを占有します。これを防ぐにはどうすればよいですか?


頻繁に宣伝される2xルールの誤解を指摘するための+1。
オタク長老

@ElderGeekありがとうございます。16 MBのRAMに32 MBのSWAPの2を掛けた場合に意味がある場合の履歴セクションを追加しました。
WinEunuuchs2Unix

考慮すべきもう1つのことは、SSDとHDDです。SSDの多くの読み取り/書き込みをSSDのその部分の障害により迅速にもたらしますか(またはこれは神話ですか)?私のシステムでは、32GBのRAMでSWAPに2GBのvelociraptor Driveを使用しましたが、休止状態にするつもりはありませんが、これでいいかどうかはまだわかりません。しかし、私が冬眠している場合は4GBで十分かもしれませんが、20GBのブラウザを使用していると、4GBでは十分ではない可能性があります。
NZのDev

@NZDev SSDでスワップを使用していますが、めったに使用されません。私が最後にチェックしたのは、1年使用してもまだ100%の寿命でした。人生の割合を表示するには、左:askubuntu.com/questions/1038701/how-do-i-check-system-health/...
WinEunuuchs2Unix

1

SWAPとは:

Linuxのスワップスペースは、物理メモリ(RAM)の容量がいっぱいのときに使用されます。システムがより多くのメモリリソースを必要とし、RAMがいっぱいになると、メモリ内の非アクティブなページはスワップスペースに移動します。スワップスペースは、少量のRAMを搭載したマシンには役立ちますが、より多くのRAMの代替と見なすべきではありません。スワップ領域は、物理メモリよりもアクセス時間が遅いハードドライブにあります。

スワップ領域は、専用のスワップパーティション(推奨)、スワップファイル、またはスワップパーティションとスワップファイルの組み合わせにすることができます。

スワップは物理RAMの2倍に等しくなければなりません。


利点:

メモリが完全にいっぱいになったときにオーバーフロースペースを提供します高速メモリからほとんど必要のないアイテムを遠ざけることができます休止状態にできます

短所:

SWAPパーティションは動的にサイズ変更されないため、ハードドライブのスペースを占有します。ハードドライブの摩耗を増加させる可能性があります。必ずしもパフォーマンスが向上するわけではありません(以下を参照)。


「追加ストレージと比較する価値がない」のようにSWAPパーティションが「助けにならない」場合:

ハードドライブのRPMが5400 RPMで、RAMがほとんどない場合、2GBを超えます。どうして ?システムは常にSWAPパーティションにアクセスしたいため、最終的には非常に遅くなります。メモリに空きができたとしても、SWAPパーティションのすべてを元に戻す必要があります。システムが遅くなるため、割り当てはSWAPパーティションにとどまります。これは、再起動でのみ修正できます。とにかく、システムはシャットダウンする前にSWAPパーティションからすべてを削除する必要があるため、しばらく時間がかかります。


**結論:**

コンピューターを休止状態にしたい場合は、SWAPパーティションが必要です。このパーティションのサイズは、インストールされているメモリのサイズに加えて、既にSWAPパーティションに既に移動されたアイテム用のスペースを確保するために10〜25%を追加する必要があります。

わずかなパフォーマンスの向上が必要な場合(少なくとも7200rpmのハードドライブがある場合)、必要に応じてSWAPパーティションを追加できますが、インストールされているメモリが4GB未満でない限り、必要ありません。このサイズは自由に設定できます。ただし、ピンポイントとして2倍のRAMをお勧めします。十分なストレージスペースがある場合。

5400rpmのハードドライブを使用している場合は、ボトルネックが原因でコンピューターの性能が低下するため、SWAPパーティションを作成しないでください。ただし、絶対にSWAPが必要な場合は、上記と同じサイズ設定ガイドラインを使用してパーティションを作成できますが、swappiness値をもっと低い値に変更できます。



私の意見:

あなたは毎日の使用のために自分のメインOSとしてUbuntuのを使用する場合はどのような場合には、私はお勧めしますは、RAMの2倍のサイズします。古いコンピューターを持っているからといってUbuntuをインストールしないからです。ただし、システムをメインOSとして使用するためです。

システムパーティションを調整して実行を継続する代わりに、必要に応じて追加のハードウェアを購入します。ゲームを購入する場合は、設定を調整して「プレイ可能」にするのではなく、システムが「最新」であることも確認してください。

短すぎたり、後ですべてのサイズを変更したりする代わりに、余分なスペース、スワップ、速度、電力を確保する方が良いでしょう。SWAPまたはスペースが必要なため、RAMを購入しましたか?または、1つのメモリスロットまたはスティックが破損したため、RAMを高速で購入する必要があります。


再:あなたの結論それは理にかなっていない、またはそれを置く別の方法は、どこに線を引くかです。例:RAM 8GBと16GBのスワップ:8GBのRAMと9GBのスワップを使用した場合、休止状態にするのに十分なスペースがまだありません。それで何が得られますか?言い換えれば、どのサイズを作成しても、それをすべて使用できます。スワップファイルに2つの専用スペース1が仮想メモリとして与えられ、もう1つがハイバネーションスペースとして合計または他の2つに割り当てられないのはなぜですか。
NZのDev

0

実際、オーバーヘッドがありますが、非常に小さいです。ディスク上の「ページ」ごとに参照カウンターがあり、すべてのスワップ領域に関連付けられた構造体がいくつかあります。これはカーネルメモリ内にあるため、ページングできません。アーキテクチャに応じて、4 GBごとに2〜16 MBです。残りはかなり動的であるため、使用方法に依存します。

したがって、ページアドレス空間自体がRAMにいくらかのオーバーヘッドを課していることに留意してください。さらに、スワップされたページの追跡が行われているので、それほど遠くまでは拡大しません。かなりのオーバーヘッドを課しても、vfsは構造情報をディスクにオフロードできるため、ファイルシステムはスワップ領域よりもはるかに効率的です(通常、ハードウェアの制限のために少なくともページテーブルはスワップできません。 vmmは、すべての簿記にスワップ不可能なメモリを使用している可能性があります)。

OTOHのスワップが少なすぎると、ページをスワップするときに断片化が発生する可能性があり、シークが増えることを意味します。多くの場合、特定のポイントの後も改善されません。

スワップは一般的に最後のリソース(休止状態を除く)であるため、特に4GBを超えるRAMがあり、場合によってはRAMが大きすぎる(64GBと考える)場合でも、RAMよりも多くのスワップスペースを使用してもメリットはないでしょう。 。


申し訳ありませんが、あなたの最後の文/文は混乱を招きます。
NZのDev

@NZDevは今より良いですか?
イスマエルルセノ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.