Apache+WordPress サーバーが落ちるので定期的に再起動させてみた

Blog用WebサーバーをLightsailに引っ越しして2週間くらい動かしましたが、メモリリークを起こして度々止まっていることがあります。いままで使っていたさくらのVPS CentOS6+Apache2.2は月に2回SSL証明書の更新処理のついでに再起動するだけで安定稼働していたのですが、今回は1日持たずに落ちていることがあり、どうも不安定です。

根本原因がわからないので、暫定策として以下を実施することにします
・Swapメモリを2GB→4GBに増加
・1時間に1回 httpdのgracefulリロード
・1日に1回 httpdのgracefulリロード後、Swapメモリのクリア、メモリ状況を自分宛にメール

知らなかったのですが、restartとgracefulは動きが違うようで、restartは強制的に再起動、gracefulは現在の処理が終わってから安全に再起動できるということで、毎時gracefulを実行することにしてみました。これでしばらく様子を見てみます。

1. 2GB Swap削除、4GB Swap再作成

$ sudo -i
# swapoff /swapfile
# rm /swapfile
# dd if=/dev/zero of=/swapfile bs=1M count=4096
# mkswap /swapfile
# swapon /swapfile
# chmod 600 /swapfile

2. cronで定時reload(graceful)処理追加

※注:私のhttpd2は reload = gracefulの動作をする設定です。

# vi /etc/cron.d/dailyjobs
-----------------------------------
.
.
# run-parts
00 * * * * root /bin/systemctl reload httpd2
05 3 * * * root /bin/systemctl reload httpd2 && swapoff -a && swapon -a && free -h
.
.
-----------------------------------
:wq
# systemctl restart crond

 

HTTP/2を有効にするためにApache2.4.37のMPMはpreforkではなくworker(なぜかeventが無い・・・要調査)で動かしているのですが、チューニングが必要かもしれません。

おまじないで、mpm_workerの設定をちょっと修正。数値に根拠はありません。

# vi /usr/local/httpd2/conf/extra/httpd-mpm.conf
-----------------------------------
.
.
<IfModule mom_worker_module>
    StartServers             1
    MinSpareThreads         25
    MaxSpareThreads        100
    ThreadsPerChild         25
    MaxRequestWorkers      100
    MaxConnectionsPerChild 2000
</IfModule>
.
.
------------------------------------
:wq
# systemctl reload httpd2

レンタルサーバーみたいにWebサーバーを安定的に維持運用するのって、すごい事なんだなぁ・・・と感じる今日この頃です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)