ThreadPerChildを200に設定すると、エラーが発生し、Apacheを起動できませんが、まだ60%の空きRAMがあります。サーバーは、4GBのRAMを搭載したWindows Server 2008R2です。この場合、ApacheにもっとRAMを利用する方法は?
私のApacheMPM構成:
# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
# Win32DisableAcceptEx: Use accept() rather than AcceptEx() to accept network connections
<IfModule mpm_winnt_module>
ThreadStackSize 8388608
ThreadsPerChild 170
MaxRequestsPerChild 0
#Win32DisableAcceptEx
</IfModule>
Apacheのerror_logで得られるもの:
[Thu Dec 01 18:23:04.459113 2016] [mpm_winnt:notice] [pid 3396:tid 288] AH00354:子:200個のワーカースレッドを開始しています。
[Thu Dec 01 18:23:04.459113 2016] [mpm_winnt:crit] [pid 3396:tid 288](OS 8)このコマンドを処理するのに十分なストレージがありません。 :AH00355:子:CreateThreadが失敗しました。すべてのワーカースレッドを作成できません。 ThreadsPerChild構成ディレクティブで要求された200個のスレッドのうち190個を作成しました。
[Thu Dec 01 18:23:04.474714 2016] [mpm_winnt:notice] [pid 3644:tid 380] AH00422:親:シャットダウン信号を受信しました-
編集:2016年12月9日:
このページをたどった https://support.Microsoft.com/en-us/kb/106167 レジストリのIRPStackSizeを20と25に変更します。それでもApacheサーバーの起動に失敗しました。
ありがとう。
この人は、64ビットのWindowsとApacheを使用することで、ThreadsPerChild
を最大化できたと言います。
https://www.apachelounge.com/viewtopic.php?t=5754
今日、私は上記と同じ構成を試しましたが、x64システムを使用しています。
Windows Server 2012(x64)
Apache 2.4.7 VC1164ビット
mod_fcgid 2.3.9
PHP 5.4.24VC11非スレッドセーフただし、64ビットシステムでは、2つの問題が解決しました。
1。 mpmThreadsPerChildを15000に設定できるようになりました