昨日このマジシャンのサイトに接続したところいつまで経っても接続ができない
サーバーの管理画面から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のセッティングを上げることを考えてね。と言った感じだろうか?
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 共通ディレクティブ