开发者

Apache ThreadsPerChild increase not applying

I installed WAMP and am using Apache 2.2.17 on my windows 7 box. Have a lot of boxes connecting to it to request work etc etc.

The apache server crashed on me twice because it said

[warn] Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting

I messed around with the httpd-mpm and this is my current configuration within that file

#
# Server-Pool Management (MPM specific)
# 

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
#
# Note that this is the default PidFile for most MPMs.
#
<IfModule !mpm_netware_module>
    PidFile "logs/httpd.pid"
</IfModule>

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
LockFile "logs/accept.lock"
</IfModule>
</IfModule>

#
# Only one of the below sections will be relevant on your
# installed httpd.  Use "apachectl -l" to find out the
# active mpm.
#

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers          4
    MaxClients          300
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild     250
    MaxRequestsPerChild   0
</IfModule>

# BeOS MPM
# StartThreads: how many threads do we initially spawn?
# MaxClients:   max number of threads we can have (1 thread == 1 client)
# MaxRequestsPerThread: maximum number of requests each thread will process
<IfModule mpm_beos_module>
    StartThreads            10
    MaxClients              250
    MaxRequestsPerThread 250
</IfModule>

# NetWare MPM
# ThreadStackSize: Stack size allocated for each worker thread
# StartThreads: Number of worker threads launched at server startup
# MinSpareThreads: Minimum number of idle threads, to handle request spikes
# MaxSpareThreads: Maximum number of idle threads
# MaxThreads: Maximum number of worker threads alive at the same time
# MaxRequestsPerChild: Maximum  number of requests a thread serves. It is 
#                      recommended that the default value of 0 be set for this
#                      directive on NetWare.  This will allow the thread to 
#                      continue to service requests indefinitely.  开发者_运维问答                        
<IfModule mpm_netware_module>
    ThreadStackSize      65536
    StartThreads           250
    MinSpareThreads         50
    MaxSpareThreads        500
    MaxThreads            3000
    MaxRequestsPerChild      0
    MaxMemFree             100
</IfModule>

# OS/2 MPM
# StartServers: Number of server processes to maintain
# MinSpareThreads: Minimum number of idle threads per process, 
#                  to handle request spikes
# MaxSpareThreads: Maximum number of idle threads per process
# MaxRequestsPerChild: Maximum number of connections per server process
<IfModule mpm_mpmt_os2_module>
    StartServers           2
    MinSpareThreads        5
    MaxSpareThreads       10
    MaxRequestsPerChild    0
</IfModule>

# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum  number of requests a server process serves
<IfModule mpm_winnt_module>
    ThreadsPerChild     250
    MaxRequestsPerChild    0
</IfModule>

The issue is that even though I increased the number of threadsperchild it still says this in the error log

[Tue Apr 12 00:26:10 2011] [notice] Apache/2.2.17 (Win32) PHP/5.3.5 configured -- resuming normal operations
[Tue Apr 12 00:26:10 2011] [notice] Server built: Oct 18 2010 01:58:12
[Tue Apr 12 00:26:10 2011] [notice] Parent: Created child process 3580
[Tue Apr 12 00:26:10 2011] [notice] Child 3580: Child process is running
[Tue Apr 12 00:26:10 2011] [notice] Child 3580: Acquired the start mutex.
[Tue Apr 12 00:26:10 2011] [notice] Child 3580: Starting 64 worker threads.
[Tue Apr 12 00:26:10 2011] [notice] Child 3580: Starting thread to listen on port 80.

Why doesn't my threadsperchild setting apply and work? It seems to default back to 64...


If you still have this problem, you need to uncomment this line in httpd.conf:

Include conf/extra/httpd-mpm.conf
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜