回答編集履歴

3

Add result of investigation

2021/04/10 01:08

投稿

y_shinoda
y_shinoda

スコア3272

test CHANGED
@@ -40,6 +40,10 @@
40
40
 
41
41
 
42
42
 
43
+ (ただし、`mpm_prefork` を有効化しなくても、`mpm_event` が最初から有効化されているため、やはり `mpm_event.conf` の初期値 150 が適用されます)
44
+
45
+
46
+
43
47
  `mpm_prefork` モジュールが、なぜ `MaxRequestWorkers` を 150 としているのかの根拠は
44
48
 
45
49
  軽く調べただけではわかりませんでした
@@ -49,3 +53,63 @@
49
53
  Apache のコードの変更履歴を追っていけばわかるかもしれません (わからないかもしれません):
50
54
 
51
55
  [apache/httpd: Mirror of Apache HTTP Server. Issues: http://issues.apache.org](https://github.com/apache/httpd)
56
+
57
+
58
+
59
+ ## MaxRequestWorkers が MPM 設定ファイルで 150 に設定されている経緯
60
+
61
+
62
+
63
+ `MaxRequestWorkers` の旧名である `MaxClient` は最初 (1999 年)から 150 として指定されていたようです:
64
+
65
+ [Apache 1.3.9 baseline for the Apache 2.0 repository. · apache/httpd@77c2776](https://github.com/apache/httpd/commit/77c277683225999b00853b02ebde3bc9cf7f7f6f)
66
+
67
+
68
+
69
+ その後、`MaxClient` の設定は MPM の設定ごとに分割され、値は 150 が引き継がれました:
70
+
71
+ [Merged the simple-conf branch changes r159781:160695 into the trunk. · apache/httpd@fa4e866](https://github.com/apache/httpd/commit/fa4e8666003806970b6ef033d8d867f7a1ec0d89)
72
+
73
+
74
+
75
+ 更に、次のタイミングで `MaxClients` が `MaxRequestWorkers` に更新されます:
76
+
77
+ [Rename MaxClients to MaxRequestWorkers which describes more accuratel… · apache/httpd@6d8de2f](https://github.com/apache/httpd/commit/6d8de2ff429c61103aeae1e7c486380627969f9d)
78
+
79
+
80
+
81
+ ちなみに、最新の Apache では「ドキュメントの初期値に合わせる」(?) ということで 250 に更新されているようです:
82
+
83
+ [Updated event mpm configuration to match the defaults in documentatio… · apache/httpd@28a9c0d](https://github.com/apache/httpd/commit/28a9c0d0ab659bf6334e56a9e2e4b70a0cca0778)
84
+
85
+
86
+
87
+ 一方、ドキュメントの方は、ドキュメントが分割されたタイミングで、
88
+
89
+ 「prefork MPMを使って 256 を超えるクライアントを構成するには、`ServerLimit` ディレクティブを使ってください。」
90
+
91
+ とだけ表記されていたところに次の初期値表記が追加されています:
92
+
93
+
94
+
95
+ ```xml
96
+
97
+ <default>>MaxClients
98
+
99
+ 8 (with threads) MaxClients 256</default>
100
+
101
+ ```
102
+
103
+
104
+
105
+ [Start converting the mpm documentation. · apache/httpd@5fe0caf](https://github.com/apache/httpd/commit/5fe0caf22ae8c6201cf06ff414b1bdd35d1af07e)
106
+
107
+
108
+
109
+ しかし、このタイミングでも `MaxClients` は初期値 150 です:
110
+
111
+ [httpd/httpd-std.conf at 5fe0caf22ae8c6201cf06ff414b1bdd35d1af07e · apache/httpd](https://github.com/apache/httpd/blob/5fe0caf22ae8c6201cf06ff414b1bdd35d1af07e/docs/conf/httpd-std.conf)
112
+
113
+
114
+
115
+ 注: 設定しなかった場合に本当に 256 になるのかまでは確認していません

2

Add expression

2021/04/10 01:08

投稿

y_shinoda
y_shinoda

スコア3272

test CHANGED
@@ -1,4 +1,4 @@
1
- 公式ドキュメントの初期値は、`MaxRequestWorkers` 何も指定をしなかった場合の値となります
1
+ 公式ドキュメントの初期値は、`MaxRequestWorkers` 何も指定をしなかった場合の値となります
2
2
 
3
3
 
4
4
 
@@ -30,6 +30,12 @@
30
30
 
31
31
 
32
32
 
33
+ モジュールを有効にすると、`/etc/apache2/mods-enabled/` 配下に
34
+
35
+ 有効にしたモジュールの設定ファイルが作成されます
36
+
37
+
38
+
33
39
  参考: [mods-enabled directory | Apache](https://geek-university.com/apache/mods-enabled-directory/)
34
40
 
35
41
 

1

Fix expression

2021/04/09 12:04

投稿

y_shinoda
y_shinoda

スコア3272

test CHANGED
@@ -8,11 +8,11 @@
8
8
 
9
9
  その理由は、php:7.4-apache の Dockerfile が
10
10
 
11
- `a2enmod` コマンドで `MPM` の設定を `prefork` に設定しているためです:
11
+ `a2enmod` コマンドで `mpm_prefork` モジュールを有効にしているためです:
12
12
 
13
13
 
14
14
 
15
- php:7.4-apache のDockerfile では、次の箇所で `MPM` を prefork に設定しています:
15
+ php:7.4-apache のDockerfile では、次の箇所で `mpm_prefork` モジュールを有効にしています:
16
16
 
17
17
 
18
18
 
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- `MPM` が `prefork` の場合、なぜ `MaxRequestWorkers` を 150 としているのかの根拠は
37
+ `mpm_prefork` モジュールが、なぜ `MaxRequestWorkers` を 150 としているのかの根拠は
38
38
 
39
39
  軽く調べただけではわかりませんでした
40
40