昨日このマジシャンのサイトに接続したところいつまで経っても接続ができない
サーバーの管理画面からSSH接続を試みますがこれも接続できず。困りましたね。こうなるとなす術ないので管理画面からサーバーをリセットする。
そうすると接続できる様になりサイトは復活した。
とりあえず解決したけどこの様なことは今までなかったので原因を突き止めなければなりません。
そろそろ寝ようかと思ってたところだけどいろいろ調べて対応したのだった。
因みにこちらの環境はGoogle Cloud Platform(GCP)、Debian9、apache2.4。

マジシャン出張はこちら

アパッチのログを確認

サーバーにコンソールから接続してアパッチのログをむ。
すると以下の様なエラーがある。

$ cd /var/log/apache2
$ tail -200 error.log
[Sat Jul 04 22:32:23.638136 2020] [mpm_prefork:error] [pid 763] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

サーバーはMaxRequestWorkersのセッティングに到着した。MaxRequestWorkersのセッティングを上げることを考えてね。と言った感じだろうか?

マジシャンのサイトがmpm_prefork:errorで接続不可 MaxRequestWorkersの値を変更

出張マジシャンはこちら

MaxRequestWorkersとは?

調べると以下の様にある。
Maximum number of connections that will be processed simultaneously
最大同時リクエスト数

私は読んでもよくはわからないが最大同時リクエスト数までは捌けるってことなのかね。

出張マジックはこちら

MaxRequestWorkersの現在の値

とりあえずこのサーバーの値がどおなっているのかを調べます。

$ cat /etc/apache2/mods-enabled/mpm_prefork.conf
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0
</IfModule>

150になっているね。

マジックレッスンはこちら

MaxRequestWorkersを変更

上げろというので250ぐらいにしておきますか。

nanoコマンドで数字を書き換え

sudo nano /etc/apache2/mods-enabled/mpm_prefork.conf

<IfModule mpm_prefork_module>
StartServers
5 MinSpareServers
5 MaxSpareServers
10 MaxRequestWorkers
250 MaxConnectionsPerChild 0
</IfModule>

sudo service apache2 restart

これで少し様子をみようと思う。

マジシャン派遣はこちら

適切な値と今後のマシンの切り替え

検索すると適切な値にチューニングすると出てくる。
よくわわからないが数字を上げすぎると今度はメモリーが足りないなんてことになるのかもしれない。

因みにサーバーのプランはケチって一番低スペックのにしている。メモリーが0.6G。そして管理画面にはパフォーマンス向上、上のマシンタイプに切り替えろと警告が出ている。たいしてアクセスないんだけどね。でも今後様子見て変更も考えていかないといけないかもしれない。

参照

ApacheのMaxRequestWorkersエラーについて
DebianでApacheのprefork設定箇所はどこへ?
Resolve Server Reached MaxRequestWorkers Setting error now!
Apache MPM 共通ディレクティブ

出張マジックはこちら