EC2 の Amazon Linux 2023 でSwapメモリの作成
こんにちは、クラスメソッドタイランドのPOPです。
このブログはタイ語のブログから日本語に翻訳したものです。
วิธีสร้าง Swap Memory ใน Amazon Linux 2 ของ EC2 | DevelopersIO
Swapとは
Swapメモリは、物理メモリ(RAM)が不足した際に、ディスク上の特定の領域を仮想メモリとして使用する仕組みです。これにより、システムのメモリ管理が柔軟になり、一時的なメモリ不足を補うことができます。
前提条件
※EC2 インスタンスが作成済みであること。
EC2 インスタンスを作成する方法は、以下のリンクを参照してください。
Swapメモリの作成
スワップ領域の確認
スワップ領域を確認します。
free -m
最初のスワップ領域は「Swap: Total=0」です。
Output
[root@ip-xx-xx-xx-xx ~]# free -m
total used free shared buff/cache available
Mem: 908 292 428 0 187 503
Swap: 0 0 0
[root@ip-xx-xx-xx-xx ~]#
スワップファイルの作成
ここでは仮に1GBのスワップ領域を作成するとします。
※1GB を超える容量が必要な場合は、1024 をより大きな値に変更してください。
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
echo '/var/swap.1 none swap sw 0 0' >> /etc/fstab
Output
[root@ip-xx-xx-xx-xx ~]# /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
echo '/var/swap.1 none swap sw 0 0' >> /etc/fstab
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.52188 s, 165 MB/s
mkswap: /var/swap.1: insecure permissions 0644, fix with: chmod 0600 /var/swap.1
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=ebb23e00-f0f2-429a-b928-c06b9f58e34e
swapon: /var/swap.1: insecure permissions 0644, 0600 suggested.
[root@ip-xx-xx-xx-xx ~]#
スワップファイルを作成した後スワップ領域の確認
もう一度スワップ領域を確認します。
free -m
スワップファイルを作成した後は「Swap: Total=1023」です。
Output
[root@ip-xx-xx-xx-xx ~]# free -m
total used free shared buff/cache available
Mem: 908 290 54 0 563 504
Swap: 1023 0 1023
[root@ip-xx-xx-xx-xx ~]#
これで、インスタンスを再起動してもスワップメモリは維持されます。
Swapメモリの削除
もし、スワップ領域が不要になったら削除することができます。
以下でスワップ領域の削除方法を説明します。
スワップファイルを無効にする
「swapoff」コマンドを使用して、現在使用されているスワップ ファイルを無効にします。
/sbin/swapoff /var/swap.1
スワップファイルを削除する
スワップ ファイルを無効にしてから、スワップ ファイルを削除します。
rm -rf /var/swap.1
ファイル「/etc/fstab」内のエントリを削除する
テキストエディタで「/etc/fstab」ファイルを開きます。
vi /etc/fstab
この行を削除します。
/var/swap.1 none swap sw 0 0
まとめ
Swapの仕組みは、HDDやSSDの領域を利用してSwapを作成し、それを仮想メモリとして使用することで、メモリを増やしてインスタンスの動作させられます。メモリが足りない時の対策になります。
EC2をより安く使うためのコツ!Swapメモリを活用しましょう。
仮想メモリではなく、本当にメモリを増やしたい場合は、以下の記事を見てください。
この記事がどなたかのお役に立てば幸いです。
以上、クラスメソッドタイランドのPOP(Tinnakorn Maneewong)でしたっ!