このサイトに接続したところ「接続がタイムアウトしました」とブラウザに表示されて接続が出来なくなった。
サーバーの管理画面からSSHで接続を試みますが接続できない
なのでしょうがないのでリブートした。
対応方法を備忘録で記載しておく。

目次

  1. 原因の調査
  2. スワップ領域を増やす
  3. 今後の対応

原因の調査

リブート後にSSHで接続します。
まず、アパッチのログを見ます。

$ tail -100 /var/log/apache2/error.log

すると以下の様なログがたくさん出ている。

[Sat Jul 04 06:26:05.354623 2020] [mpm_prefork:error] pid 7398Cannot allocate memory: AH00159: fork: Unable to fork new process

よくはわからないがメモリー関連の様。

このサーバーはGoogle Cloud PlatformというGoogleのクラウドサービスを使っているのだけど貧乏な私は一番低スペックな0.6Gのメモリーを使っている。
前に他のサイトで「データーベース接続確立エラー」と表示されてメモリーのスワップ領域を増やしたことがあったのでそれだなと思い対処することにした。

スワップ領域を増やす

swapの確認

$ free
total used free shared buff/cache available
Mem: 606692 376448 42896 26916 187348 113064
Swap: 0 0 0

Swap領域が0だった。

他のサイトでやった通りに今回もする。

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo sh -c ‘echo “/swapfile swap swap defaults 0 0” >> /etc/fstab’
sudo reboot

  • 上から1Gのスワップファイルを作成
  • スワップファイルのパーミッションを変更
  • swap領域にするファイルを指定
  • swapをONの状態に→ここでfreeコマンドで割り当てを確認
  • システム起動時にswapがONになるようシェルスクリプトを作成
  • サーバーをリブート→Swapコマンドで立ち上がりを確認

swapをONの後に確認すると以下の様にSwapが割り当てられている。

$ free
total used free shared buff/cache available
Mem: 606692 284676 128940 25140 193076 207264
Swap: 1048572 0 1048572

参照:

今後の対応

因みにサーバーの管理画面にはいつも以下の様な警告文が出ている。

パフォーマンス向上 
インスタンス「wordpress-xx-vm」は過剰に使われている。 次のマシンタイプへの切り替えを検討して: g1-small(vCPU x 1、メモリ 1.7 GB)。 詳細

アップグレードも考えないといけませんね。