Apache 2.2在Windows 2003上缓慢提供静态文件

我遇到了运行Apache 2.2的Windows 2003 Server的问题。

服务器的性能似乎非常糟糕,只是试图加载一个10kb的文件需要一段时间才能在浏览器中加载。

有没有人有任何提高性能的提示?

我的httpd.conf有这样的设置:

KeepAlive On MaxKeepAliveRequests 500 MaxRequestsPerChild 0 KeepAliveTimeout 4 Timeout 60 HostnameLookups off 

和/extras/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> # # 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 30 MinSpareServers 30 MaxSpareServers 30 MaxClients 1000 ThreadsPerChild 1024 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 30 MaxClients 1000 MinSpareThreads 30 MaxSpareThreads 30 ThreadsPerChild 1024 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 50 MaxRequestsPerThread 10000 </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 25 MaxSpareThreads 250 MaxThreads 1000 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 1000 MaxRequestsPerChild 0 </IfModule> 

请在httpd.conf中查找这个指令并取消注释:

 EnableMMAP off EnableSendfile off 

也可以在httpd-mpm.conf中设置

 <IfModule mpm_winnt_module> ThreadsPerChild 32 MaxRequestsPerChild 10000 Win32DisableAcceptEx </IfModule>