swap(仮想メモリ)の運用方法

swap(仮想メモリ)の運用方法
swap(仮想メモリ)の運用方法

Raspberry Pi OSのswap(仮想メモリ)サービスの起動、停止、swapファイルサイズ変更等運用方法を掲載します。

現状の確認

普通にインストールすると、swap(仮想メモリ)サービスが起動します。

$ sudo swapon -s
Filename                                Type            Size    Used    Priority
/var/swap                              file            102396  0       -2
$ sudo free -h
               total        used        free      shared  buff/cache   available
Mem:           3.7Gi       173Mi       3.3Gi       6.0Mi       211Mi       3.5Gi
Swap:           99Mi          0B        99Mi

/var/swap 102396、スワップファイルが約100MB確保されています。

Swap:99Mi なので仮想メモリとして99MBまで使用できます。

もしメモリが足らなくなると、99MBまでメモリを拡張してくれます。

swap(仮想メモリ)サービスの停止

swap(仮想メモリ)サービスを停止および非活性化する方法を説明します。

$ sudo swapoff --all
$ sudo systemctl stop dphys-swapfile
$ sudo systemctl disable dphys-swapfile
Synchronizing state of dphys-swapfile.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable dphys-swapfile
Removed /etc/systemd/system/multi-user.target.wants/dphys-swapfile.service.

サービスの状態を確認します。

$ systemctl status dphys-swapfile
● dphys-swapfile.service - dphys-swapfile - set up, mount/unmount, and delete a swap file
     Loaded: loaded (/lib/systemd/system/dphys-swapfile.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:dphys-swapfile(8)

Nov 27 15:02:39 raspberrypi systemd[1]: Starting dphys-swapfile - set up, mount/unmount, and delete a swap file...
Nov 27 15:02:39 raspberrypi dphys-swapfile[350]: want /var/swap=100MByte, checking existing: keeping it
Nov 27 15:02:39 raspberrypi systemd[1]: Finished dphys-swapfile - set up, mount/unmount, and delete a swap file.
Nov 27 15:14:56 raspberrypi systemd[1]: Stopping dphys-swapfile - set up, mount/unmount, and delete a swap file...
Nov 27 15:14:56 raspberrypi systemd[1]: dphys-swapfile.service: Succeeded.
Nov 27 15:14:56 raspberrypi systemd[1]: Stopped dphys-swapfile - set up, mount/unmount, and delete a swap file.

赤字の通りActive:inactive swap(仮想メモリ)サービスが停止しています。

下記のコマンドで、swap(仮想メモリ)の停止が確認できます。

$ sudo swapon -s
$ sudo  sudo free -h
               total        used        free      shared  buff/cache   available
Mem:           3.7Gi       174Mi       3.3Gi       6.0Mi       212Mi       3.5Gi
Swap:             0B          0B          0B

赤字の通りswap:の横の数字が0となっているのでOKです。

これで、Raspberry Pi4を再起動してもswap(仮想メモリ)サービスは有効となりません。

swapファイルのサイズ変更

一般的にswapファイルのサイズは、サーバに搭載されているメモリと同じとするのが通説です。

ちゃんとチューニングをしているサーバであれば、swapファイルに大きなサイズを指定する必要はありません。

前章の通りインストール直後のswapファイルは100MBしか確保されていません。もし100MBを超える仮想メモリが必要となった時、自動的にswapファイルが拡張されていくのですが、swapファイルを拡張するために更なる時間遅延が発生します。

そこで、swapファイルをあらかじめ想定のサイズまで拡張しておきます。

搭載メモリが4GBのRaspberry Pi4の場合、1GBもあれば保守作業が十分行えると考えられswapファイルを1024MB(1GB)に拡張します。

swap(仮想メモリ)サービスを停止している状態で設定ファイルを変更します。

$ sudo vi /etc/dphys-swapfile

設定ファイルに、CONF_SWAPSIZE=100と記述が有りますので、CONF_SWAPSIZE=1024に変更します。

この後の章で、swap(仮想メモリ)サービスを起動することで、指定した1024MB(1GB)のswapファイルが作成されます。

swap(仮想メモリ)サービスの起動

swap(仮想メモリ)サービスの活性化と起動します。

$ sudo systemctl enable dphys-swapfile
Synchronizing state of dphys-swapfile.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable dphys-swapfile
Created symlink /etc/systemd/system/multi-user.target.wants/dphys-swapfile.service → /lib/systemd/system/dphys-swapfile.service.
$ sudo systemctl start dphys-swapfile

実行の結果を確認します。

$ systemctl status dphys-swapfile
● dphys-swapfile.service - dphys-swapfile - set up, mount/unmount, and delete a swap file
     Loaded: loaded (/lib/systemd/system/dphys-swapfile.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sun 2022-11-27 16:12:44 JST; 4min 31s ago
       Docs: man:dphys-swapfile(8)
    Process: 1122 ExecStart=/sbin/dphys-swapfile setup (code=exited, status=0/SUCCESS)
    Process: 1165 ExecStart=/sbin/dphys-swapfile swapon (code=exited, status=0/SUCCESS)
   Main PID: 1165 (code=exited, status=0/SUCCESS)
        CPU: 137ms

Nov 27 16:12:44 raspberrypi systemd[1]: Starting dphys-swapfile - set up, mount/unmount, and delete a swap file...
Nov 27 16:12:44 raspberrypi dphys-swapfile[1122]: want /var/swap=1024MByte, checking existing: deleting wrong size file (104857600), generating swapfile ... o>
Nov 27 16:12:44 raspberrypi systemd[1]: Finished dphys-swapfile - set up, mount/unmount, and delete a swap file.

前章で設定した1024MByte(1GB)でswapファイルが作成されactiveになりました。

更に下記コマンド、設定どおり仮想メモリ1GBで起動している事を確認できます。

$ sudo swapon -s
Filename                                Type            Size    Used    Priority
/var/swap                               file            1048572 0       -2
$ sudo  sudo free -h
               total        used        free      shared  buff/cache   available
Mem:           3.7Gi       173Mi       3.2Gi       6.0Mi       297Mi       3.5Gi
Swap:          1.0Gi         0B       1.0Gi
タイトルとURLをコピーしました