Ubuntu 22.04 LTS にスワップファイルを追加する

この記事は約4分で読めます。

パソコンのパフォーマンスに影響する要素のひとつにメモリの容量があります。メモリはディスクに保存されているアプリケーションを読み込み、CPUやその他のシステムとデータのやり取りをおこないます。メモリは通常、HDDやSSDなどのディスクシステムより速くデータの読み書きをおこなうことができるため、メモリを多く搭載したパソコンはパフォーマンスを高めることが可能です。

しかし、メモリの搭載容量はシステム上の制約や、予算の関係でそこまで多く搭載することが難しいかもしれません。そこで、登場するのがスワップ領域です。スワップ領域は、HDDやSSDにファイルやパーティションで領域を確保し、メモリが不足しそうな場合にはその領域に一時データを待避させることで、メモリ不足を防ぐ技術です。

一昔前はスワップパーティションによる領域確保が主流でしたが、今はスワップファイルによる領域確保をおこなうことができ、より柔軟に対応することが可能です。

 

スポンサーリンク

Ubuntu 22.04 LTS にスワップファイルを追加

今回の目的は、Ubuntu 22.04 LTSを搭載したマシンにスワップファイルを追加し、有効化することです。

ファイル形式で確保したスワップファイルの場合、後で領域を増やすことも可能です。今回使用するマシンは8GBのRAMを搭載しているので、同じサイズの8GBのスワップ領域を確保したいと思います。

スワップファイルのサイズは、それぞれのマシンの状況により適当なサイズを確保してください。目安としては、RAMと同容量か、少なくとも4GBです(あくまで経験上の数値です)。

 

現在のスワップ領域の確認

はじめに、システムの現在のスワップ領域を確認します。

$ sudo swapon --show

なにも表示されなければ、現在使用可能なスワップ領域はありません。

以下のように表示されればスワップ領域が存在します。

$ sudo swapon --show
NAME      TYPE  SIZE  USED  PRIO
/swapfile  file     2G    256K       -2

この場合、ファイル名を変える必要があります(例えば /swapfile2 など)。

 

スワップファイルの作成

スワップファイルを作成します。スワップファイルは十分な領域のあるドライブに作成します。

十分な領域があるかどうかは、以下のコマンドで確認することができます。

$ df -h

今回は、ルートディレクトリに swapfile という名前で 8GB のファイルを作成します。

ファイルの作成は、fallacate コマンドを使用します。

$ sudo fallocate -l 8G /swapfile

swapfile が正しく確保されたか確認します。

$ ls -lh /swapfile-rw-r--r-- 1 root root 8G jul 25 12:00 /swapfile

上記のように表示されれば swapfile は正しく確保されています。

 

スワップファイルの有効化

swapfile にパーミッションを設定します。

$ chmod 600 /swapfile

ファイルをスワップ領域として設定します。

$ sudo mkswap /swapfile

スワップファイルを有効にします。

$ sudo swapon /swapfile

スワップが使用可能であることを確認します。

$ sudo swapon --showNAME TYPE SIZE USED PRIO /swapfile file 8G 0B -2

上記のように表示されれば、スワップ領域として認識されています。

 

スワップ領域の永続化

スワップ領域が有効化されましたが、このままでは再起動するとスワップ領域として自動で使用可能にはなりません。

/etc/fstab ファイルに以下のスワップファイルの記述を追加することで、起動時にスワップファイルを認識させます。

$ sudo vim /etc/fstab
/swapfile none swap sw 0 0

 

スワップファイルの設定が完了したので、一度、再起動してスワップ領域が設定されているか確認してください。

 

おわりに

以上で、スワップ領域を構築することができました。

最近は、メモリを多く積んでいる環境も多くあると思いますが、Ubuntuの場合、一昔前のメモリの少ないマシンで運用している場合もあると思います。

メモリ不足になる前に、スワップ領域を確保してフリーズなどを回避しましょう。

 

コメント

タイトルとURLをコピーしました