🎞️

swapサイズ変更手順(ファイル割当)

2024/03/08に公開

swap領域のサイズを変更する手順を示す。

方法としてはサイズ変更可能なファイルシステムを使用したり新たな領域を切り出すやりかたもあるが、ここでは手軽なファイルを用いた方法を示す。

現状確認

まず現在のswapの状態を確認しておく。

# cat /etc/fstab
:
# <file system>                           <mount point> <type> <options> <dump> <pass>
:
UUID=1b99e04e-eb3c-4201-a3c5-a1dc34731b61 swap          swap   defaults  0      0
:

# swapon -s
Filename           Type       Size     Used    Priority
/dev/sda3          partition  3864572  277048  -1

# free -m
             total  used  free  shared  buffers  cached
Mem:          3637  3410   227     209      876     799
-/+ buffers/cache:  1734  1902
Swap:         3773   286  3487

# egrep -i '(^mem|^swap)' /proc/meminfo
MemTotal:    3725008 kB
MemFree:      113668 kB
SwapCached:    12356 kB
SwapTotal:   3864572 kB
SwapFree:    3563500 kB

swapファイル作成

通常のファイルをswapファイルとして設定する。ここでは400MBのファイルを作成する。

# dd if=/dev/zero of=/var/tmp/swap400m bs=1M count=400
400+0 records in
400+0 records out
419430400 bytes (419 MB) copied, 1.97258 s, 213 MB/s

# ls -lh /var/tmp/swap400m 
-rw-r--r-- 1 root root 400M Nov 12 22:56 /var/tmp/swap400m

# mkswap /var/tmp/swap400m
Setting up swapspace version 1, size = 409596 KiB
no label, UUID=e9d8a4e6-b352-4e0d-97cb-67f0b3bdcce3

swap割り当て解除

現状のswapの割り当てを解除する。割当元のデバイスを削除するわけではないので再度割り当て直せば利用できる。

# swapoff -a

# swapon -s
Filename           Type       Size     Used    Priority

# free -m
             total  used  free  shared  buffers  cached
Mem:          3637  3483   154     214      775     789
-/+ buffers/cache:  1918  1719
Swap:            0     0     0

# egrep -i '(^mem|^swap)' /proc/meminfo
MemTotal:    3725008 kB
MemFree:      157524 kB
SwapCached:        0 kB
SwapTotal:         0 kB
SwapFree:          0 kB

swap割り当て

先ほど作成したswapファイルをswapに割り当てる。これでswapのサイズが変わる。

# swapon /var/tmp/swap400m

# swapon -s
Filename           Type       Size     Used    Priority
/var/tmp/swap400m  file       409596   0       -1

# free -m
             total  used  free  shared  buffers  cached
Mem:          3637  3492   144     213      776     794
-/+ buffers/cache:  1922  1715
Swap:          399     0   399

# egrep -i '(^mem|^swap)' /proc/meminfo
MemTotal:    3725008 kB
MemFree:      145972 kB
SwapCached:        0 kB
SwapTotal:    409596 kB
SwapFree:     409596 kB

設定戻し

上記設定を戻すのは簡単で、いったんswapoff -aコマンドでswap割り当てを解除してswapon
-aコマンドで元々のswapデバイスを割り当て直せばよい。不要となったswapファイルは削除してよい。

# swapoff -a 
# swapon -a
# rm /var/tmp/swap400m

Discussion