Linux Swap設定方法(CentOS 7)

LinuxにSwap領域を追加する方法

  • AWSから提供されているLinux のAMI には、Swapが設定されていません(インスタンスタイプにもよる)。
  • 今回は、EC2 上に起動したCentOS 7.6 を使用します。
  • Swap領域は後から容易に追加が可能なファイルの形式で追加したいと思います。

現在のファイルシステムの状態、サイズを確認する

  • df -hコマンドで、ファイルを配置するファイルシステムに十分な空き容量があること。

$ df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/vg_root-lv_root  3.5G  2.1G  1.5G  60% /
devtmpfs                     222M     0  222M   0% /dev
tmpfs                        233M     0  233M   0% /dev/shm
tmpfs                        233M   25M  209M  11% /run
tmpfs                        233M     0  233M   0% /sys/fs/cgroup
/dev/nvme0n1p1               509M  199M  311M  40% /boot
tmpfs                         47M     0   47M   0% /run/user/500

現在のSwap領域の状態を確認する

  • Swap領域はTotal 0MB である。

$ free
              total        used        free      shared  buff/cache   available
Mem:         476248      112008       94660       24940      269580      312468
Swap:             0           0           0

Swap領域に割り当てるファイルを作成する

  • 今回は1024MB(1GB)のファイルを作成する。実際はハードウェアの構成やミドルウェアの要件による。

$ sudo dd if=/dev/zero of=/swapvol bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 11.5515 s, 93.0 MB/s

パーミッションを変更する

  • パーミッションは、rootのみ参照できるファイルとする。

$ ls -lh /swapvol
-rw-r--r-- 1 root root 1.0G Jul  1 23:14 /swapvol
$ sudo chmod 600 /swapvol
$ ls -lh /swapvol
-rw------- 1 root root 1.0G Jul  1 23:14 /swapvol

Swap領域の割り当てを行う


$ sudo mkswap /swapvol
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=2443d037-21b8-4597-abf0-f1cb8b3fc02c

Swap領域を有効にする


$ sudo swapon /swapvol

現在のSwap領域の状態を確認する

  • 設定後、約1GBが割り当てられていることを確認する。

$ swapon -s
Filename                                Type            Size    Used    Priority
/swapvol                                file    1048572 0       -2
$ free
              total        used        free      shared  buff/cache   available
Mem:         476248       78808        7516       24940      389924      346828
Swap:       1048572           0     1048572

OS再起動時にSwap領域のマウントを行うようにfstabを編集する

  • /etc/fstabを編集する。バックアップを忘れずに。

$ cd /etc
$ sudo cp -p fstab fstab_20190701
$ sudo vi fstab(以下を追記する)
/swapvol      swap    swap    defaults        0       0
$ diff fstab_20190701 fstab
12a13
> /swapvol      swap    swap    defaults        0       0

(必要に応じて)OS再起動後もSwap領域がマウントされるかを確認する

  • OS再起動が可能であれば、/etc/fstabの設定が正しいことを確認する。

$ sudo shutdown -r now

$ free
              total        used        free      shared  buff/cache   available
Mem:         476248       77216      210760        8564      188272      365596
Swap:       1048572           0     1048572