t2.micro(Amazon Linux 2023)環境では物理メモリ1Giga Byteしかないため、同時アクセスが多いサイトを立てる場合、一時的に物理メモリが不足に陥ってWordpressが異常終了します。これを回避するには物理メモリの増設方法がありますが、毎月のawsからの請求額が増えてしまいます。この記事ではSwapメモリを使用して一時的に物理メモリのデータを保存し、メモリ増設と同様の効果を得られるSwapメモリ設定手順をまとめました。
【補足 Swapメモリ】
物理メモリと統合的に管理されます。システムは、より頻繁にアクセスされるデータを物理メモリに保持し、アイドル状態のデータをSwapメモリに配置することで、最適なパフォーマンスを実現します。これにより、メモリの使用効率が向上します。
SWAPメモリ拡張手順
既存のRAM 1Gに仮想メモリを2G増やすことで、合計3GのRAMを持っているようにソフトウェアを動作させることができます。これにより、同時に大量のWebアクセスが発生しない限り、データベースにアクセスするプロセッサが停止するのはなかなか起こらないと考えられます。
この記事で紹介する仮想メモリの拡張手順はCentOS 7でも確認されています。
現在のメモリの確認
次のfreeコマンドとdfコマンドを実行して、swap メモリとディスクの空き容量、使用量を確認します。
AWSが提供するAmazon EC2(Elastic Compute Cloud)初期1年無料t2.microのLinux環境を構築してワードプレスをインストール、ブログを開始したときの初期状態はswapメモリがSwap: 0 0 0なっていてなにも割り当てられていません。
$ free
total used free shared buff/cache available
Mem: 972644 464180 73424 56204 435040 288452
Swap: 0 0 0
Linuxシステム上のdfコマンドでSwapメモリ割当前のディスク使用状況を表示します。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4096 0 4096 0% /dev
tmpfs 486320 0 486320 0% /dev/shm
tmpfs 194532 2864 191668 2% /run
/dev/xvda1 8310764 3307744 5003020 40% /
tmpfs 486324 0 486324 0% /tmp
tmpfs 97264 0 97264 0% /run/user/1000
/dev/xvda128 10202 1308 8894 13% /boot/efi
Swapメモリの割当
/swapfileという名前のファイルを作成し、その中身をゼロで埋めます。なお、ブロックサイズ(64メガバイト)*32ブロック = 2Gyte SSDメモリをRAMのように使う為、次のコマンドでSwapメモリを割当します。
$ sudo dd if=/dev/zero of=/swapfile bs=64M count=32
32+0 records in
32+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 32.1526 s, 66.8 MB/s
/swapfileに対してアクセス権を設定します。
600は所有者に読み取りおよび書き込みの権限を与え、他のユーザーにはアクセス権を与えないことを意味します。
$ sudo chmod 600 /swapfile
swapfileをSwap領域として使用するためにフォーマットします。
$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=20121ed2-e71c-4ee4-b757-a6dcaf921874
Swapファイルを有効化します。
$ sudo swapon /swapfile
システムに現在有効なSwap領域の一覧を表示します。
$ sudo swapon -s
Filename Type Size Used Priority
/swapfile file 2097148 0 -2
「Linuxコンピュータの起動時のマウント情報」を保存している/etc/fstabファイルに/swapfile情報を追加する必要があります。追加しないと、再起動時に上記で設定した/swapfileが認識されないことになります。
$ sudo vi /etc/fstab
#
UUID=974bfdce-a279-4e16-b3a4-114c0f95708b / xfs defaults,noatime 1 1
UUID=CE90-017B /boot/efi vfat defaults,noatime,uid=0,gid=0,umask=0077,shortname=winnt,x-systemd.automount 0 2
以下を最後尾に追加します。
/swapfile swap swap defaults 0 0
増設結果の確認
Linuxシステム上のfreeコマンドでシステムの物理メモリ(RAM)とSwapメモリの使用状況を表示します。
ここではSwapメモリが「total:2097148 usered:0 free:2097148」にて割り当てられていることを確認できます。
$ free
total used free shared buff/cache available
Mem: 972644 454000 94468 56204 424176 303368
Swap: 2097148 0 2097148
Linuxシステム上のdfコマンドでLinuxシステム上のディスク使用状況を表示します。ここではSSDメモリ2GByteをswapメモリに設定したのでUse%(ディスク使用量)の値がSwapメモリ作成前の40%から66%使用に変わったことを確認できます。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4096 0 4096 0% /dev
tmpfs 486320 0 486320 0% /dev/shm
tmpfs 194532 2864 191668 2% /run
/dev/xvda1 8310764 5405232 2905532 66% /
tmpfs 486324 0 486324 0% /tmp
tmpfs 97264 0 97264 0% /run/user/1000
/dev/xvda128 10202 1308 8894 13% /boot/efi
コメント