はじめに
_Amazon Linux_に2048MBのスワップを作成する作業を行います。
その前にまずスワップとは、
スワップとは、ハードディスクなどの補助記憶装置を利用して使用可能なメモリ容量を増やすOSの機能の一つ。- IT用語辞典(e-Words)より抜粋
つまり今回で言うとEBSボリュームの一部をメモリとして扱えるようにした領域のことです。
ということで作成してみます。
事前確認
$ free -m
total used free shared buffers cached
Mem: 491 353 138 0 8 294
-/+ buffers/cache: 49 442
Swap: 0 0 0
$ swapon -s
スワップ領域の作成
まず、dd
コマンドでスワップ用の領域を確保します。
$ sudo dd if=/dev/zero of=/swapfile bs=1024 count=2048k
2097152+0 レコード入力
2097152+0 レコード出力
2147483648 バイト (2.1 GB) コピーされました、 32.0676 秒、 67.0 MB/秒
$ sudo chmod 600 /swapfile
作成したらmkswap
でスワップを作成します。
$ sudo mkswap /swapfile
mkswap: /swapfile: warning: wiping old swap signature.
スワップ空間バージョン1を設定します、サイズ = 2097148 KiB
ラベルはありません, UUID=88c217dc-d8e0-42f9-b2bc-eb814505b5e3
以上で作成が完了しました。
スワップ領域の有効化
mkswap
で作成しただけでは利用できません。スワップの作成ができたらswapon
でスワップ領域の有効化をします。
$ sudo swapon /swapfile
$ free -m
total used free shared buffers cached
Mem: 491 485 6 0 4 421
-/+ buffers/cache: 59 432
Swap: 2047 0 2047
$ swapon -s
Filename Type Size Used Priority
/swapfile file 2097148 0 -1
スワップ領域の無効化
スワップ領域の有効化はswapon
ですが、無効化はswapoff
で行います。
$ sudo swapoff /swapfile
自動マウント設定
毎回コマンドでスワップを有効化するのは大変ですので、起動時に自動マウントするように_/etc/fstab_に追記しておきます。
$ sudo vi /etc/fstab
/swapfile none swap defaults 0 0
以上で完了です。
おわりに
かつての物理サーバでは、コストや仕様などの理由で利用出来るメモリに制限がありました。
ただ、今ではクラウドを利用することによってswapを作成するならそれ以上にメモリを積むであったり、一台あたりのパワーを求めるよりスケールアウトという発想の方が効率的になってきたこともありswapの利用する場面が少なくなっています。
とはいえ、いざという時のswapはあっても損じゃないかなと個人的には思います。