1. 概要

Linuxユーザーは通常、スワップスペースを認識していますが、誤解の原因となることがよくあります。

この記事では、スワップを有効にすることが常に有益である理由をいくつか説明します。 また、スワップを使用するとシステムの速度が低下するという一般的な誤解についても説明します。

2. スワップスペースとは何ですか?

スワップスペースは、パーティションまたはファイルの形式でディスク上にあります。 Linuxはこれを使用して、プロセスで使用可能なメモリを拡張し、使用頻度の低いページをそこに保存します。

通常、オペレーティングシステムのインストール中にスワップスペースを構成します。 ただし、mkswapおよびswaponコマンドを使用して後で設定することもできます。

使用可能な物理メモリが十分にある場合でも、通常のシステム操作中にスワップスペースが役立つ理由を見てみましょう。

3. Linuxはいつスワップスペースを使用しますか?

3.1. より多くのディスクバッファのために未使用のRAMを解放する

free コマンドを使用して、Linuxがメモリをどのように使用するかを確認することから始めましょう。

$ free -h
              total        used        free      shared  buff/cache   available
Mem:            15G         15G        618M         17M        223M        711M
Swap:           46G        1.1G         45G

関心のある列は、無料バフ/キャッシュ、利用可能です。

この例では、新しいプロセスを開始するために、618Mの空き未使用メモリと711M使用可能があります。 93Mの違いは、現在 buff / cache の223Mの一部であり、カーネルバッファとページキャッシュに使用されています。 ここで、Linuxは、必要に応じて、その量のRAMまでディスクにスワップできると推定しています。 スワップスペースを使用しているため、availableメモリの方が高くなっています。

Linuxは常にRAMを可能な限り使用しようとします。 これは、最速のドライブでさえ、他のどのストレージよりもはるかに高速であるためです。

ファイルがメモリにキャッシュされている場合、関連するプロセスははるかに高速に実行されます。 初めてファイルにアクセスするときにファイルをキャッシュするアクションは、ディスクバッファリングと呼ばれます。 書き込みもメモリに行われ、すぐにディスクに戻されます。

より多くの利用可能なメモリを使用すると、Linuxはより多くのファイルをキャッシュでき、全体的なパフォーマンスが向上する可能性があります。 メモリを解放する良い方法は、めったに使用されないページを交換することです。 これが、スワップスペースを有効にすることが有益である理由の1つです。

3.2. ディスクへのサスペンド

ディスクへのサスペンドまたはハイバネーション機能は、デスクトップシステムで役立ちます。 シャットダウンする前に、現在のシステム状態をRAMからディスクに保存します。 次回システムが起動すると、保存された状態がRAMに復元され、中断したところから続行できるようになります。

Linuxは、ディスクにサスペンドするときにスワップスペースを使用します。 休止状態にする場合は、RAMのサイズ以上のスワップパーティションまたはファイルが必ず必要です。

スワップを有効にすることの利点を確認したので、スワップによってシステムの速度が低下するという誤った主張に対処しましょう。

4. スワップスペースによってシステムが遅くなることはありません

スラッシングはよく理解されているパフォーマンスの問題であり、避けたいと思うかもしれません。 RAMがほとんど使い果たされると、Linuxはメモリを交換するサイクルに入ることが多く、それがメインアクティビティになります。 これにより、システムが使用できなくなります。

一部の人々は、スワップを完全に無効にし、RAMのみを使用することによってこの状況を回避しようとします。 一見、それは良いアドバイスのように思えるかもしれませんが、よく調べてみると、必ずしもそうではないことがわかります。

4.1. メモリページの解放は常に発生します

スワップスペースがなくても、特定の状況では一部のメモリページがスワップされます

すでに学習したように、ファイルが読み取られると、データはページキャッシュに配置され、将来のアクセスが向上します。 元のファイルはディスク上にあるため、スワップスペースが無効になっている場合でもスワップできます。

4.2. 匿名ページが入れ替えられることはありません

匿名メモリと呼ばれる別のタイプのメモリがあります。 このメモリはプロセスによって要求されますが、ディスク上のファイルによってバックアップされません。 これらの匿名ページの中には、起動時に1回だけ使用されるメモリがあります。 これらのページはスワップするのに最適な候補です。したがって、スワップを有効にすると、物理メモリを浪費することはなくなります。

5. 結論

この記事では、メモリのサイズに関係なく、スワップスペースが推奨される理由を学びました。 また、スワップスペースがシステムパフォーマンスに悪影響を与えるという一般的な誤解にも対処しました。

スワップスペース用にディスク上にいくらかのスペースを予約しておくことは常に良いことです。 パフォーマンスが著しく向上しない場合でも、Linuxシステムはより健全になります。