AmazonLinuxにswapを作成する。


はじめに

Amazon Linuxに2048MBのスワップを作成する作業を行います。

その前にまずスワップとは、

スワップとは、ハードディスクなどの補助記憶装置を利用して使用可能なメモリ容量を増やすOSの機能の一つ。- IT用語辞典(e-Words)より抜粋

つまり今回で言うとEBSボリュームの一部をメモリとして扱えるようにした領域のことです。

ということで作成してみます。

事前確認

swap確認①
$ free -m
             total       used       free     shared    buffers     cached
Mem:           491        353        138          0          8        294
-/+ buffers/cache:         49        442
Swap:            0          0          0
swap確認②
$ swapon -s

スワップ領域の作成

まず、ddコマンドでスワップ用の領域を確保します。

swap領域作成
$ 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でスワップを作成します。

swap作成
$ sudo mkswap /swapfile 
mkswap: /swapfile: warning: wiping old swap signature.
スワップ空間バージョン1を設定します、サイズ = 2097148 KiB
ラベルはありません, UUID=88c217dc-d8e0-42f9-b2bc-eb814505b5e3

以上で作成が完了しました。

スワップ領域の有効化

mkswapで作成しただけでは利用できません。スワップの作成ができたらswaponでスワップ領域の有効化をします。

swap有効化
$ sudo swapon /swapfile 
swap確認①
$ free -m
             total       used       free     shared    buffers     cached
Mem:           491        485          6          0          4        421
-/+ buffers/cache:         59        432
Swap:         2047          0       2047
swap確認②
$ swapon -s
Filename                Type        Size    Used    Priority
/swapfile                               file    2097148 0   -1

スワップ領域の無効化

スワップ領域の有効化はswaponですが、無効化はswapoffで行います。

swap無効化
$ sudo swapoff /swapfile 

自動マウント設定

毎回コマンドでスワップを有効化するのは大変ですので、起動時に自動マウントするように/etc/fstabに追記しておきます。

自動マウント
$ sudo vi /etc/fstab
/swapfile   none        swap    defaults        0   0

参考:Arch Linux - fstab

以上で完了です。

おわりに

かつての物理サーバでは、コストや仕様などの理由で利用出来るメモリに制限がありました。
ただ、今ではクラウドを利用することによってswapを作成するならそれ以上にメモリを積むであったり、一台あたりのパワーを求めるよりスケールアウトという発想の方が効率的になってきたこともありswapの利用する場面が少なくなっています。
とはいえ、いざという時のswapはあっても損じゃないかなと個人的には思います。