運用中にswap領域の追加が必要となる場合があります。
RAM+SWAPでは足りなくなってきたときに、まずはシステムを安定させる場合に使っています。RAMを増やさず、swapを大きくしてRAM領域を増やすと、常時swap状態になりサーバーは著しく遅くなります。
以下はUbuntu 16の上で、無停止で追加した手順です。
CentOSやSuSEなど、他のLinuxでも考え方は同じです。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.7 LTS
Release: 16.04
Codename: xenial
$
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.7 LTS
Release: 16.04
Codename: xenial
$
■手順
- 残容量の確認
- fallocateでswapファイルの基を作成
- chmod 600でアクセス権を設定
- mkswapでswapファイル化
- swaponでswap領域に追加
- swapon --showで追加結果確認
- fstabをnanoで編集し再起動後の自動反映を設定
- 再起動後の自動反映の設定結果を確認
- 残容量の確認
- fallocateでswapファイルの基を作成
- chmod 600でアクセス権を設定
- mkswapでswapファイル化
- swaponでswap領域に追加
- swapon --showで追加結果確認
- fstabをnanoで編集し再起動後の自動反映を設定
- 再起動後の自動反映の設定結果を確認
■現状確認
■■現在のRAM利用状況
swapがまだ、少し残っているが、あと少しで足りなくなる
$ free
total used free shared buff/cache available
Mem: 4046152 3110700 161964 20664 773488 371572
Swap: 8388596 7671644 716952
■■現在のRAM利用状況
swapがまだ、少し残っているが、あと少しで足りなくなる
$ free
total used free shared buff/cache available
Mem: 4046152 3110700 161964 20664 773488 371572
Swap: 8388596 7671644 716952
■■現在のswap関連情報を確認
自己ルールで、/var/lib/swap以下にswapファイルを置く
このサーバーには、既に三つのswapファイルがある
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/var/lib/swap/swap2g file 2G 2G -1
/var/lib/swap/swap2g2 file 2G 2G -2
/var/lib/swap/swap4g file 4G 3.3G -3
■■swapファイルを作る領域の残容量を確認
まだ数Gなら追加できる
$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 9.8G 9.6G 51% /
■swap領域を2G追加
■■追加swap領域の基ファイルを作成
$ sudo fallocate -l 2G /var/lib/swap/swap2g3
$ sudo ls -l /var/lib/swap/
合計 10485776
-rw------- 1 root root 2147483648 9月 24 2020 swap2g
-rw------- 1 root root 2147483648 12月 8 00:07 swap2g2
-rw-r--r-- 1 root root 2147483648 5月 23 16:12 swap2g3
-rw------- 1 root root 4294967296 2月 17 13:19 swap4g
■■追加swap領域の基ファイルのアクセス権を調整
$ sudo chmod 600 /var/lib/swap/swap2g3
$ sudo ls -l /var/lib/swap/
合計 10485776
-rw------- 1 root root 2147483648 9月 24 2020 swap2g
-rw------- 1 root root 2147483648 12月 8 00:07 swap2g2
-rw------- 1 root root 2147483648 5月 23 16:12 swap2g3
-rw------- 1 root root 4294967296 2月 17 13:19 swap4g
■■追加swap領域の基ファイルををswap領域に変換
$ sudo mkswap /var/lib/swap/swap2g3
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
ラベルはありません, UUID=c5d08908-7e00-4ce3-95d0-dcb63a747a55
■■追加swap領域を追加し拡張を確認
$ sudo swapon /var/lib/swap/swap2g3
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/var/lib/swap/swap2g file 2G 2G -1
/var/lib/swap/swap2g2 file 2G 2G -2
/var/lib/swap/swap4g file 4G 3.3G -3
/var/lib/swap/swap2g3 file 2G 0B -4
$
■サーバー起動時のswap領域の自動反映を設定
■■現状確認
$ cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults 0 0
/dev/mapper/lxc-lv0 /mnt/lxc xfs defaults 0 0
/var/lib/swap/swap2g swap swap defaults 0 0
/var/lib/swap/swap2g2 swap swap defaults 0 0
/var/lib/swap/swap4g swap swap defaults 0 0
$
■■fatabをコピーして保管(厳重に注意しながら)
$ sudo cp -a /etc/fstab{,.20210523}
■■fstabを編集(厳重に注意しながら)
$ sudo nano /etc/fstab
編集作業は省略
編集結果を確認
$ cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults 0 0
/dev/mapper/lxc-lv0 /mnt/lxc xfs defaults 0 0
/var/lib/swap/swap2g swap swap defaults 0 0
/var/lib/swap/swap2g2 swap swap defaults 0 0
/var/lib/swap/swap4g swap swap defaults 0 0
/var/lib/swap/swap2g3 swap swap defaults 0 0
編集結果が現状と一致することを確認
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/var/lib/swap/swap2g file 2G 2G -1
/var/lib/swap/swap2g2 file 2G 2G -2
/var/lib/swap/swap4g file 4G 3.3G -3
/var/lib/swap/swap2g3 file 2G 0B -4
$
自己ルールで、/var/lib/swap以下にswapファイルを置く
このサーバーには、既に三つのswapファイルがある
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/var/lib/swap/swap2g file 2G 2G -1
/var/lib/swap/swap2g2 file 2G 2G -2
/var/lib/swap/swap4g file 4G 3.3G -3
■■swapファイルを作る領域の残容量を確認
まだ数Gなら追加できる
$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 9.8G 9.6G 51% /
■swap領域を2G追加
■■追加swap領域の基ファイルを作成
$ sudo fallocate -l 2G /var/lib/swap/swap2g3
$ sudo ls -l /var/lib/swap/
合計 10485776
-rw------- 1 root root 2147483648 9月 24 2020 swap2g
-rw------- 1 root root 2147483648 12月 8 00:07 swap2g2
-rw-r--r-- 1 root root 2147483648 5月 23 16:12 swap2g3
-rw------- 1 root root 4294967296 2月 17 13:19 swap4g
■■追加swap領域の基ファイルのアクセス権を調整
$ sudo chmod 600 /var/lib/swap/swap2g3
$ sudo ls -l /var/lib/swap/
合計 10485776
-rw------- 1 root root 2147483648 9月 24 2020 swap2g
-rw------- 1 root root 2147483648 12月 8 00:07 swap2g2
-rw------- 1 root root 2147483648 5月 23 16:12 swap2g3
-rw------- 1 root root 4294967296 2月 17 13:19 swap4g
■■追加swap領域の基ファイルををswap領域に変換
$ sudo mkswap /var/lib/swap/swap2g3
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
ラベルはありません, UUID=c5d08908-7e00-4ce3-95d0-dcb63a747a55
■■追加swap領域を追加し拡張を確認
$ sudo swapon /var/lib/swap/swap2g3
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/var/lib/swap/swap2g file 2G 2G -1
/var/lib/swap/swap2g2 file 2G 2G -2
/var/lib/swap/swap4g file 4G 3.3G -3
/var/lib/swap/swap2g3 file 2G 0B -4
$
■サーバー起動時のswap領域の自動反映を設定
■■現状確認
$ cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults 0 0
/dev/mapper/lxc-lv0 /mnt/lxc xfs defaults 0 0
/var/lib/swap/swap2g swap swap defaults 0 0
/var/lib/swap/swap2g2 swap swap defaults 0 0
/var/lib/swap/swap4g swap swap defaults 0 0
$
■■fatabをコピーして保管(厳重に注意しながら)
$ sudo cp -a /etc/fstab{,.20210523}
■■fstabを編集(厳重に注意しながら)
$ sudo nano /etc/fstab
編集作業は省略
編集結果を確認
$ cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults 0 0
/dev/mapper/lxc-lv0 /mnt/lxc xfs defaults 0 0
/var/lib/swap/swap2g swap swap defaults 0 0
/var/lib/swap/swap2g2 swap swap defaults 0 0
/var/lib/swap/swap4g swap swap defaults 0 0
/var/lib/swap/swap2g3 swap swap defaults 0 0
編集結果が現状と一致することを確認
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/var/lib/swap/swap2g file 2G 2G -1
/var/lib/swap/swap2g2 file 2G 2G -2
/var/lib/swap/swap4g file 4G 3.3G -3
/var/lib/swap/swap2g3 file 2G 0B -4
$
いつもアクセスありがとうございます。
Linuxのswap領域は無停止で拡張することができます。