サーバーにスワップパーティションが必要ですか?


37

私はこの質問を読みましたが、デスクトップやノートブックではなくサーバーのコンテキストで尋ねられました。

ノートブックに十分な量のRAM(たとえば8 GB)がインストールされている場合でも、スワップスペースは必要ですか?

回答:


33

スワップスペースを持つことはシステムパフォーマンスに悪影響を与えるという一般的な誤解があります。これは間違っています。RAMが十分にある限り、そのサイズに関係なくスワップ領域を使用してもパフォーマンスはまったく低下しません。パフォーマンスに影響するのは、RAMが不足し、スワップ領域を効果的に使用していることです。

  1. スワップスペースがなく、RAMが不足している場合、カーネルは、適切な候補と思われる1つ以上のプロセスを選択し(ただし、いくつかのヒントを与えることができます)、それらを強制終了します。

  2. スワップスペースがあり、RAMが不足している場合、カーネルは使用量の少ないメモリページを選択し、スワップ領域に配置してRAMを解放します。これによりシステムの速度が低下しますが、それ以外の場合、アプリケーションは影響を受けません。

私はいつもケース2を好む。なぜなら、私のアプリケーションは殺す価値があるとカーネルが考えるので、作業の一部またはすべてを不快に感じるからだ。さらに、平均ディスクの現在のサイズがTBの範囲内にあるため、通常、スワップ用に数パーセントを予約することは問題になりません。


あなたの最初のポイントは本当に本当ですか?カーネルは実行中のプロセスを強制終了してRAMを解放しますか?カーネルがライブプロセスを強制終了するのではなく、単にディスクスペースを使用しないのはなぜですか?
ドナート

4
@Donatoはい、私の最初のポイントは本当です。スワップスペースが構成されていない場合(つまりディスク)、カーネルはディスクスペースを使用してRAMを解放する選択肢を与えられません。
jlliagre

そして、スワップスペースを終了するとどうなりますか?ケース1でフォールバックしますか?
ザック

@Zacはい、メモリのオーバーコミットメントを実際に無効にしない限り、メモリの割り当てに失敗した最初のプロセスが損傷します。(重要な)スワップ領域が設定されていて、たまたまそのほとんどを使用している場合、最初に深刻なパフォーマンスの問題が発生する可能性があることに注意してください。
jlliagre

1
@Zacスワップ空間を使い果たした場合、最初の場所にスワップ空間がないことと本質的に同じ状況になります。1つ以上のプロセスが停止します。それらは、大当たりキラーによって選択されるか、単に間違った場所と間違った時間にいるかもしれません。通常、適切に監視された本番システムは、アラートをトリガーしてから、スワップが枯渇する前に管理者の反応をトリガーする必要があります。
jlliagre

9

3GB以上のRAMがある場合、UbuntuはOSに十分すぎるためスワップ領域を自動的に使用ません

さて、本当にスワップパーティションが必要ですか?

私の意見では、答えはイエスです。スワップスペースが必要になる可能性があるため、今後何をインストールまたは実行するのかわからないからです。また、休止状態の使用を計画している場合は、スワップスペースが必要になる場合があります。実際にはスワップパーティションを用意する必要はありませんが、通常の操作でその量のメモリを使い果たす場合に推奨されます。

スワップの必要性の有無の詳細については、Ubuntu Swap Faqまたはスワップ要件を参照してください


最初の声明を確認するリンクはありますか?
jlliagre


1
ブログの声明は、askunbutuの返信を誤って引用しています。user4124がUbuntu開発者であるという証拠はありません。「(通常)使用しない」は「自動的に無効にする」とはまったく異なります。実際、Ubuntuはスワップを無効にすることはなく、必要に応じて、8GB以上のRAMがある場合でもスワップを使用します。
jlliagre

@jlliagreこれが意味するのは、スワップスペースはあるが使用されていないということです。Xubuntu 14.04をインストールすると、16GBのスワップが作成され、まだ使用されていません。画像を
ミッチ

1
返信を修正してくれてうれしいです。「使用しない」は、「無効にする」と同じではありません。Ubuntuは、サイズに関係なく、スワップを無効にせず、必要に応じてスワップを使用します。
jlliagre

4

過去6年間ほど、少なくとも8GBのRAMを搭載したデスクトップシステムを使用しました。システムが通常の使用でメモリをスワップアウトした場合を覚えていません-そして、htopを使用してリソースの使用を頻繁に監視しています。開発目的で4つの仮想マシン(サーバー)を同時に実行した場合でも、スワッピングは発生しませんでした。

ただし、実行しているアプリケーションがメモリを集中的に使用している場合(ビデオ編集、画像編集、大規模なデータベーステーブル操作など)、システムのメモリが不足する可能性があります。その場合、スワップ領域が必要になる場合があります。それを最後の手段のセーフティネットと考えてください。そして、今日のシステムのマルチテラバイトの容量を考慮して、スワップパーティションにある数ギガバイトは価値がありますか?ごめんなさいよりも安全に:-)


2

スワップスペースを確保することは常に良いことです。

ここでは、マイケルチャンのRHCSA / RHCE認定試験ガイドを引用しています。

Linuxスワップスペース

このようなスペースは、現在実行中のプログラムの仮想メモリとして、システム上の有効なRAMの量を拡張するために使用されます。ただし、追加のRAMを購入してスワップスペースをなくすことはできません。Linuxは、ギガバイトのRAMがあっても、使用頻度の低いプログラムとデータをスワップスペースに移動します。

最大2GBのシステムの場合、デフォルトのスワップスペースサイズは、インストールされているRAMの2倍です。2GBを超えると、RAMの容量+ 2GBになります。しかし、それらは「ハードで速い」ルールではありません。数GBのRAMを備えたワークステーションは、非常に少ないスワップスペースを頻繁に使用します。しかし、一度に数か月間リブートされないか、特定のサービスからの需要が高いシステムでは、より頻繁に使用されます。


1
「Linuxは、ギガバイトのRAMがある場合でも、使用頻度の低いプログラムとデータをスワップスペースに移動します」。ここでは、メモリにロードされたコードとデータについて話していると思います。8GBのRAMがあり、通常のアプリを実行しているだけの場合、コードまたはデータページがページアウトされてスワップされるのはなぜですか?
タリック

1

システムで実行しているものに依存します。

コンテンツを作成している場合は、スワップスペースを割り当てることをお勧めします。したがって、RAMが不足すると、プロセスが強制終了されたり、作業が失われたりするのではなく、遅くなります。

マシンがプログラムを実行しているだけであれば、スワップスペースは必要ありません。私は、この使用法にぴったり合う多くのキオスクのようなディスプレイシステムを設計および構築しています。その状態を検出して修正することができるので、遅いよりも突然プロセスが死んだほうがいいです。


1

スワップまたはより多くのスワップスペースが必要な場合は、ファイルシステムにスワップファイルを作成できます。もちろん、休止状態はサポートされませんが、SSDドライブと大量のRAMを搭載したラップトップにとっては合理的なアプローチです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.