LoginSignup
5
1

Ubuntu22.04/メモリ不足対応のためスワップ領域を追加する

Last updated at Posted at 2023-01-31

Ubuntu22.04/メモリ不足対応のためスワップ領域を追加する

はじめに

以前使っていたPCにUbuntuを入れてみました。
ブラウザやIDEなどを開いているとちょいちょい固まるので、メモリ不足が疑われました。
メモリ不足に対しては、スワップ領域を追加すると良さそうなので、手順をまとめておきます。

そもそもスワップって何

メモリが足りないときに、メモリの中身をハードディスクに移すことで、実際のメモリよりも大きなメモリを扱えるという機能です。

手順

1. スワップ情報を確認

$ sudo swapon --show

上記コマンドで、出力がない場合、現在使用可能なスワップ領域がないということになります。手順3のスワップファイルの作成に進んでください。

下記のような出力が出る場合は、現在スワップ領域があるということになります。

結果
NAME      TYPE SIZE USED PRIO
/swapfile file   8G   0B   -2

スワップ領域を変更する場合は

  • 現在のスワップ領域を一度削除して新しく作り直す
  • 新しいswapfileを作り、そちらのswapfileを適用させる
    という2つの方法があります。
    削除する場合は手順2を、新しく作る場合は手順3を参照してください。
    尚、新しく作る場合は、すでにswapfileがあるため、swapfile2など違う名前で作ってあげればOKです。

2.スワップファイル削除

不要な方はこの手順スキップ

1.スワップの解除をする

$ sudo swapoff -v /swapfile

2./etc/fstabのswapの情報を削除
/etc/fstabの中に下記のような行があるため、削除する

/swapfile none swap sw 0  0

3.スワップファイルを削除する

$ sudo rm /swapfile

3.スワップファイルの作成

1.ハードディスクの空き領域を確認

$ df -h

上記コマンドを打って、Mounted onの列が「/」のものがのAvailが空き容量です。
下記の例だと200Gが空き容量となります。

結果
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           768M  2.4M  765M   1% /run
/dev/nvme0n1p2  234G   23G  200G  11% /
tmpfs           3.8G  118M  3.7G   4% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/nvme0n1p1  511M  5.3M  506M   2% /boot/efi
tmpfs           768M  4.7M  763M   1% /run/user/1000

  
2.スワップ領域の割当

環境のメモリの半分~同じくらいのメモリが目安みたいです。
メモリが8GBなら4~8GBです。

$ sudo fallocate -l 8G /swapfile

3.確認

$ ls -lh /swapfile 
結果
-rw-r--r-- 1 root root 8.0G  1月 30 00:13 /swapfile

4.パーミッション変更

$ sudo chmod 600 /swapfile
$ ls -lh /swapfile
結果
-rw------- 1 root root 8.0G  1月 30 00:13 /swapfile

5.スワップファイルへの変換

$ sudo mkswap /swapfile
結果
スワップ空間バージョン 1 を設定します。サイズ = 8 GiB (8589930496 バイト)

6.スワップファイルの登録

$ sudo swapon /swapfile
結果
スワップ空間バージョン 1 を設定します。サイズ = 8 GiB (8589930496 バイト)

7.確認
1つ目

sudo swapon --show
結果
NAME      TYPE SIZE USED PRIO
/swapfile file   8G   0B   -2

2つ目

free -h
結果
               total        used        free      shared  buff/cache   available
Mem:           7.5Gi       4.2Gi       851Mi       1.2Gi       2.4Gi       1.8Gi
Swap:          8.0Gi          0B       8.0Gi

4.スワップファイルの永続化

再起動するとスワップの設定が消えてしまうため、変更を永続化させてあげる必要があります。

1./etc/fstabのバックアップ
/etc/fstabを変更しますが、何が問題が起きてもいいようにバックアップをとっておきます。

$ sudo cp /etc/fstab /etc/fstab.bak

2.スワップ永続化の設定

$ sudo sh -c "echo /swapfile none swap sw 0 0 >> /etc/fstab"
5
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1