設定 - Swap領域の拡張方法(SUSE)
概要
ここでは、手動によるSwap領域の拡張方法について記載する。
Swap用のパーティションを準備している場合、YaSTで拡張可能である。
Swap向けパーティションの作成方法
Swap向けパーティションを作成する。
※パーティションタイプは82(Linux swap)を指定して作成する。
# X : ストレージ番号 sudo fdisk /dev/sdX
Swap用のパーティションが正常に作成できたか確認する。
sudo fdisk -l /dev/sdX
:
Device Boot Start End Blocks Id System
/dev/sdx2 2048 6291455 3144704 82 Linux swap / Solaris
次に、Swap領域を設定する。
# X : ストレージ番号 # Y : パーティション番号 sudo mkswap -c /dev/sdXY
Swap領域を有効にする。
# X : ストレージ番号 # Y : パーティション番号 sudo swapon /dev/sdXY
また、Swapファイルを無効にするには、以下に示すコマンドを実行する。
# X : ストレージ番号 # Y : パーティション番号 sudo swapoff /dev/sdXY
現在、使用可能なSwap領域を確認する。
cat /proc/swaps もしくは sudo swapon -s
なお、使用可能なパーティションが無い場合、手動でSwapファイルを作成して、Swap領域を拡張することも可能である。
※注意
ただし、Btrfsは、Swapファイルをサポートしていないので注意すること。
Swapファイルの作成方法
Btrfs以外の場合
Swap用の空ファイルを作成する。
例えば、8[GB]のSwapファイルを/var/lib/swap/swapfileに追加するには、次のコマンドを実行する。
sudo mkdir -p /var/lib/swap sudo dd if=/dev/zero of=/var/lib/swap/swapfile bs=1M count=8192
次に、スワップファイルを初期化する。
sudo mkswap /var/lib/swap/swapfile
Swapファイルを有効化する。
sudo swapon /var/lib/swap/swapfile
ちなみに、Swapファイルを無効にするには、次のコマンドを実行する。
sudo swapoff /var/lib/swap/swapfile
現在、使用可能なSwap領域を確認する。
cat /proc/swaps または sudo swapon -s
上記の設定は、一時的なSwap領域なので、再起動後は使用されなくなる。
拡張したSwap領域を永久的に有効にするには、/etc/fstabファイルを編集して、次の行を追加する。
sudo vi /etc/fstab # /etc/fstabファイル : /dev/sdXY swap swap defaults 0 0 /var/lib/swap/swapfile swap swap defaults 0 0
Btrfsの場合 (Linuxカーネル 5.0以降)
Btrfsのswapファイルは、Linuxカーネル 5.0以降からサポートされている。
Swapファイルを初期化する手順を以下に示す。
- まず、ファイルをホストする非圧縮、非スナップショットのサブボリュームを作成する。
- サイズがゼロのSwapファイルを作成して、
No_COW
を設定する。 - 属性を
chattr
コマンドで変更して、圧縮が無効になっていることを確認する。
truncate -s 0 <作成するSwapファイルのパス> sudo chattr +C <作成したSwapファイルのパス> sudo btrfs property set <作成したSwapファイルのパス> compression none
※注意
Swapファイルをスナップショットサブボリュームに置くことはできないため、Swapファイルを配置する新しいサブボリュームを作成する必要がある。
複数のデバイスにまたがるファイルシステム上のSwapファイルはサポートされない。
Swapファイルの使用領域、あるいは、空き領域を表示する場合は、以下に示すコマンドを実行する。
sudo btrfs filesystem usage <Swapファイルのパス> # または btrfs filesystem df <Swapファイルのパス>
Btrfsの場合 (Linuxカーネル 4.x以前)
Btrfsでは、ループデバイスにスワップファイルをマウントして、それをスワップに割り当てることができる。
まず、任意のディレクトリにSwapファイルを作成する。
sudo dd if=/dev/zero of=<Swapファイルのパス> bs=1M count=1024
次に、ルーパバックデバイスにSwapファイルを割り当てる。
# X : ループバックデバイス番号 sudo losetup /dev/loopX <Swapファイルのパス> sudo mkswap /dev/loopX
Swapキャッシュの削除
Swapキャッシュを削除する。
sudo swapoff -a sudo swapon -a # または sudo swapoff -a && sudo swapon -a