目次

CentOSでスワップファイルを作成・設定する

swapの有無を確認1

free
実行結果
              total        used        free      shared  buff/cache   available
Mem:        1881964     1416736       86188       25228      379040      283588
Swap:             0           0           0

Swaptotal0ならばスワップファイルが設定されていない

swapファイルのパスを確認する方法

freeコマンドでSwaptotalが0ではなかった場合
swaponコマンドで既存のスワップファイルのパスなどを確認できる

swapon
実行結果
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition   2G   0B   -2

上記の例だと、/dev/dm-1というパスにスワップファイルがある

スワップ用のファイルを作成

スワップが未設定の場合は自分でスワップファイルを作成する

dd if=/dev/zero of=/swapfile bs=1M count=4096
実行結果
4096+0 レコード入力
4096+0 レコード出力
4294967296 バイト (4.3 GB) コピーされました、 38.3469 秒、 112 MB/秒

上記のコマンドにより、ルート直下にswapfileというファイルが新規作成される
swapfileの中身はnullで埋め尽くされていて、サイズは4096メガバイト

ddコマンドは、ただ空のファイルを作成しているだけで、作成したファイルをスワップファイルとして登録する作業はこの後の手順で行う

ddコマンドのオプション

/dev/zeroは中身がnullの特殊なファイル
これをif=/dev/zeroと指定することで、中身がnullのファイルを作成している

of=/swapfileと指定することで、ルート直下にswapfileというファイルが新規作成される

bs=1M count=4096と指定することで、1MBのブロックを4096個、つまり4096MBのファイルが生成される

スワップファイルをフォーマット

mkswap /swapfile
実行結果
スワップ空間バージョン1を設定します、サイズ = 4194300 KiB
ラベルはありません, UUID=cf79ba69-233c-4666-b119-814359321417

swapfileをスワップファイルとして使えるようにフォーマット

スワップ機能を有効にする

chmod 600 /swapfile
swapon /swapfile

swapfileのパーミッションを600に変更

swaponでスワップ機能を有効にする

swapの有無を確認2

free
実行結果
              total        used        free      shared  buff/cache   available
Mem:        1881964      505016     1079104       16968      297844     1215272
Swap:       4194300           0     4194300

Swaptotal4194300と表示されていればOK

swaponを永続化する

swaponを実行するとスワップ機能がオンになるが、再起動するとスワップ機能がオフに戻ってしまう

/etcディレクトリにある
fstabというファイルに設定を追加すれば、サーバーの起動時に自動的にスワップをオンにできる

vi /etc/fstab
fstab抜粋
/swapfile swap swap defaults 0 0

/etcディレクトリの
fstabというファイルの末尾に
/swapfile swap swap defaults 0 0
という1行を追加する

これにより、再起動時に自動的にスワップ機能が有効になる

fstabはfile system tableの略
ファイルシステムをマウントするための設定ファイル
(fstabの細かいオプションを確認したいときは、man fstabでfstabのマニュアルが確認できる)

スワップ機能をオフにする

swapoff /swapfile

swapoffコマンドにより、スワップ機能を無効化できる

スワップファイルのサイズを変更する方法

スワップファイルのサイズを変更したいときは
スワップ機能を一旦オフにして、/swapfileを削除する

dd if=/dev/zero of=/swapfile bs=1M count=4096
のときにcountの数値を変更して作り直せばOK