free
total used free shared buff/cache available Mem: 1881964 1416736 86188 25228 379040 283588 Swap: 0 0 0
Swapのtotalが0ならばスワップファイルが設定されていない
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コマンドは、ただ空のファイルを作成しているだけで、作成したファイルをスワップファイルとして登録する作業はこの後の手順で行う
/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でスワップ機能を有効にする
free
total used free shared buff/cache available Mem: 1881964 505016 1079104 16968 297844 1215272 Swap: 4194300 0 4194300
Swapのtotalが4194300と表示されていればOK
swaponを実行するとスワップ機能がオンになるが、再起動するとスワップ機能がオフに戻ってしまう
/etcディレクトリにある
fstabというファイルに設定を追加すれば、サーバーの起動時に自動的にスワップをオンにできる
vi /etc/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