AWS
AmazonLinux

AmazonLinuxにswapを作成する。

More than 1 year has passed since last update.


はじめに

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はあっても損じゃないかなと個人的には思います。