CentOSでスワップファイルを作成・設定する
swapの有無を確認1
free
- 実行結果
total used free shared buff/cache available Mem: 1881964 1416736 86188 25228 379040 283588 Swap: 0 0 0
Swap
のtotal
が0
ならばスワップファイルが設定されていない
swapファイルのパスを確認する方法
free
コマンドでSwap
のtotal
が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コマンドのオプション
- if: input file
- of: output file
- bs: block size
- count: 個数
/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
Swap
のtotal
が4194300
と表示されていれば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