2016-09-15 131 views
0

我的電腦有8個內核和16GB內存,在高流量的情況下,當RAM達到3GB時,我的web服務器(apache-xampp)無法訪問。我的CPU只用於20%。我需要重新啓動Web服務器。Apache(XAMPP)在高負載時沒有響應

我設置php.ini中上

max_execution_time=60 
memory_limit=10128M 

有任何建議,以優化我的服務器,讓我的服務器可以爲至RAM/CPU使用到它的極限?


編輯: 我的httpd-mpm.conf

# 
# 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> 

# 
# 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 
# MaxRequestWorkers: maximum number of server processes allowed to start 
# MaxConnectionsPerChild: maximum number of connections a server process serves 
#       before terminating 
<IfModule mpm_prefork_module> 
    StartServers    5 
    MinSpareServers   5 
    MaxSpareServers   10 
    MaxRequestWorkers  150 
    MaxConnectionsPerChild 0 
</IfModule> 

# worker MPM 
# StartServers: initial number of server processes to start 
# 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 
# MaxRequestWorkers: maximum number of worker threads 
# MaxConnectionsPerChild: maximum number of connections a server process serves 
#       before terminating 
<IfModule mpm_worker_module> 
    StartServers    2 
    ServerLimit  500 
    MinSpareThreads   25 
    MaxSpareThreads   75 
    ThreadsPerChild   25 
    MaxRequestWorkers  150 
    MaxConnectionsPerChild 0 
</IfModule> 

# event MPM 
# StartServers: initial number of server processes to start 
# 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 
# MaxRequestWorkers: maximum number of worker threads 
# MaxConnectionsPerChild: maximum number of connections a server process serves 
#       before terminating 
<IfModule mpm_event_module> 
    StartServers    2 
    MinSpareThreads   25 
    MaxSpareThreads   75 
    ThreadsPerChild   25 
    MaxRequestWorkers  150 
    MaxConnectionsPerChild 0 
</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 
# MaxConnectionsPerChild: Maximum number of connections 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   25 
    MaxSpareThreads  250 
    MaxThreads   1000 
    MaxConnectionsPerChild 0 
</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 
# MaxConnectionsPerChild: Maximum number of connections per server process 
<IfModule mpm_mpmt_os2_module> 
    StartServers    2 
    MinSpareThreads   5 
    MaxSpareThreads   10 
    MaxConnectionsPerChild 0 
</IfModule> 

# WinNT MPM 
# ThreadsPerChild: constant number of worker threads in the server process 
# MaxConnectionsPerChild: maximum number of connections a server process serves 
<IfModule mpm_winnt_module> 
    ThreadsPerChild  1150 
    MaxConnectionsPerChild 0 
</IfModule> 

# The maximum number of free Kbytes that every allocator is allowed 
# to hold without calling free(). In threaded MPMs, every thread has its own 
# allocator. When not set, or when set to zero, the threshold will be set to 
# unlimited. 
<IfModule !mpm_netware_module> 
    MaxMemFree   2048 
</IfModule> 
<IfModule mpm_netware_module> 
    MaxMemFree    100 
</IfModule> 
+0

如何檢查許多Apache工作人員都是你設定的。考慮在serverfault上詢問這個問題:) – jedifans

+0

我添加了我的httpd-mpm.conf。你會幫我優化它嗎? –

+0

如何不在XAMPP上運行高流量站點? – Devon

回答

0

一些調整的,你可以添加到您的Apache配置文件(httpd.conf)是

KeepAlive On 

MaxKeepAliveRequests 75 

KeepAliveTimeout 100 

AcceptFilter http none 
AcceptFilter https none 
+0

我設置MaxKeepAliveRequests 100,但KeepAliveTimeout 10,我會嘗試將其更改爲100 –