(更新日:2019年2月28日)
GCP(Google Cloud Platform)の無料枠で使用できるマシンのメモリは0.6GBと少なく、その上でWordPressを動かすとメディア編集などですぐにメモリ不足になります。
具体的な影響としてはメモリ不足でMySQLが動かず、データベース接続確立エラーでWordPressにアクセスできない問題が頻発しました。
そこで今回はストレージ上にswap領域を追加することでメモリ不足の解消を試みました。
試しに1GBのswap領域を確保したところ、WordPressの動作が安定してデータベース接続確立エラーが出なくなりました。
swapの設定手順は実マシン上でのLinuxOSの操作と変わりません。
VMに自動インストールされたdebianのswap領域は0Bとなっているので、手動で追加します。
パーティションは弄りたくないので、swapファイルを追加する方法を取ります。
まずはGCPのVMインスタンスから該当マシンにSSH接続します。
ターミナルが表示されたらfreeコマンドでメモリの使用状況を確認します。
このようにswapが0であることが分かります。
次に、以下のコマンドを実行してswapファイルを生成します。
- sudo dd if=/dev/zero of=/var/swapfile bs=1M count=1024
今回は1024MB(=1GB)の領域を/var/swapfileにファイルとして作ります。
これでswapファイルが生成されました。
次のコマンドでswapファイルのパーミッションを600に変更します。
- sudo chmod 600 /var/swapfile
次のコマンドで/var/swapfileをswap領域として使用できるようにします。
- sudo mkswap /var/swapfile
次のコマンドで/var/swapfileのswap領域を有効化します。
- sudo swapon /var/swapfile
このswapon命令は一時的なもので、再起動すると無効になります。
マシン起動時に自動でswapを有効化するためにfstabを編集してswapファイルをマウントします。
nanoなどのエディタで/etc/fstabの最終行に以下の一文を追記します。
- /var/swapfile swap swap defaults 0 0
再びfreeコマンドを実行するとswap領域が確保されていることが分かります。
以上でswap領域の追加は完了です。
根本的なメモリ増設ができない状況でswapの有無の差は大きいです。
今後はメモリの使用状況を見つつ運用していこうと思います。