このサイトは「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
コメント