GCP VM インスタンス に SWAP (スワップ) を設定する

Set Up SwapPC・サーバー

このサイトは「GCP (Google Cloud Platform)」を利用しています。マシンタイプ e2-micro (メモリ 1GB) 、Ubuntu 20.04.4 の構成です。最近、VM インスタンスのメモリ不足と思われる原因で頻繁にフリーズするようになりました。そこで SWAP を検討することにしました。
現在の私の PC も「Ubuntu 20.04.4 」で、過去に SWAP 領域を拡張したことがあるので、その当時を思い出しならが作成することにしました。
以下、その手順です。
なお、全ての操作は GCP 管理コンソールを開き「Computer Engine」 の「 VMインスタンス」内の 「SSH 接続」から行えます。

アクティブな SWAP の有無を確認します

「free コマンド」で アクティブな SWAP の有無を確認します。
併せて [swapon -s]、[cat /proc/swaps] でも確認してみましょう。

free -m

以下「free コマンド」のアウトプットです。
「Swap」のサイズが「0」ですのでアクティブな SWAP はありませんね。

              total        used        free      shared  buff/cache   available
Mem:            968         530         102          69         335         218
Swap:             0           0           0

仮に、あったとしてもこの手順で複数の追加 SWAP 領域の作成は可能ですよ。
これからの説明にある新たに作成する SWAP ファイル名を既存の SWAP ファイル名と異なるの名前(フルパス)にすれば良いだけですので ...

SWAP 領域をアロケートします

SWAP 領域は、以下のようなファイルで設定することにします。SWAP サイズ、SWAP ファイル名は、ご自由に ...

  • SWAP サイズ:2GB
  • SWAP ファイル名:swapfile(ルートディレクトリ直下)

「fallocate コマンド」で SWAP ファイルを作成しましす。
なお、下層ディレクトリ内に作成する場合は、フルパス指定を推奨します。

sudo fallocate -l 2G /swapfile

SWAP ファイルのパーミッションを設定します

「chmod コマンド」で 作成した /swapfile のパーミッションを 600 に設定します。

sudo chmod 600 /swapfile

「ls コマンド」で /swapfile のパーミッションが 600 であることを確認しましょう。

sudo ls -l /swapfile

SWAP ファイルを SWAP 領域として初期化します

「mkswap コマンド」で /swapfile を SWAP 領域として初期化 (mk) します。

sudo mkswap /swapfile

SWAP ファイルを SWAP 領域として有効化します

「swapon コマンド」で /swapfile を SWAP 領域として有効化 (on) します。

sudo swapon /swapfile

SWAP ファイルを SWAP 領域として自動マウントするようにします

サーバを再起動する度に手動で「swapon」コマンドを実行する必要が無いように「tee コマンド」で「/swapfile none swap defaults 0 0」の情報を /etc/fstab に追加します。
なお、テキストエディタで追加することもできますね。

この追加情報は、ファイルシステムをマウントするための情報を定義してある「/etc/fstab」の仕様に従うことになりますので、興味のある方はご自身で調べてみましょう。

echo '/swapfile none swap defaults 0 0' | sudo tee -a /etc/fstab

「cat コマンド」で /etc/fstab に情報が書き込まれたことを確認しましょう。

cat /etc/fstab

SWAP の動作確認をします

「reboot コマンド」でシステムの再起動を行ってから「free コマンド」で SWAP が有効になっていることを確認します。

sudo reboot
free -m

以下「free コマンド」のアウトプットです。「Swap」にサイズが入っていれば、無事完了です。

              total        used        free      shared  buff/cache   available
Mem:            968         377         225          43         365         399
Swap:          2047         331        1716

コメント