カテゴリー
コミュニケーションズ

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

昨日このマジシャンのサイトに接続したところいつまで経っても接続ができません。
サーバーの管理画面から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 共通ディレクティブ


作成者: えいち/H

マジシャンのえいち/Hです。
東京でプロマジシャン|出張、派遣をやってます。
記事の感想、コメント、質問などはTwitterにお願いします。
フォローも良かったらお願いします。
Instagram / YouTube / Facebook