Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 运行cgi程序时,Apache服务是否有连接/内存限制?_Windows_Perl_Apache_Process_Windows Services - Fatal编程技术网

Windows 运行cgi程序时,Apache服务是否有连接/内存限制?

Windows 运行cgi程序时,Apache服务是否有连接/内存限制?,windows,perl,apache,process,windows-services,Windows,Perl,Apache,Process,Windows Services,我正在尝试在Apache2.0/2.2/2.4上同时运行数百个cgi程序(perl或其他语言)。我的测试环境是WindowsServer2003R2,内存为1GB 在该程序中,我使用无限循环或“$\u0=”使每个进程保持活动状态。在Apache配置中,我将所有相关配置设置为足够大,如ThreadPercild为1000。然后我使用JMeter测试200个请求。当我在控制台中运行Apache应用程序时,它工作正常,所有200个cgi进程都在运行。但是,当我将Apache作为windows服务运行时

我正在尝试在Apache2.0/2.2/2.4上同时运行数百个cgi程序(perl或其他语言)。我的测试环境是WindowsServer2003R2,内存为1GB


在该程序中,我使用无限循环或“$\u0=”使每个进程保持活动状态。在Apache配置中,我将所有相关配置设置为足够大,如ThreadPercild为1000。然后我使用JMeter测试200个请求。当我在控制台中运行Apache应用程序时,它工作正常,所有200个cgi进程都在运行。但是,当我将Apache作为windows服务运行时,只有60-100个进程将并发运行。除非我杀死任何正在运行的进程,否则其他进程不会启动。我不知道这是什么原因。运行cgi程序时,Apache服务是否有连接/内存限制?谢谢

httpd.conf
文件中的
MaxClients
参数设置apache服务器的最大连接限制。 默认连接限制为256

您可以通过打开
httpd.conf
文件并搜索MaxClient来检查您的服务器

linux中httpd.conf的默认位置是
/etc/httpd/conf/httpd.conf

在windows上,conf文件的默认位置是
C:/Program Files/Apache Group/Apache/conf/httpd.conf

看起来像这样

# 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
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>
#启动服务器:要启动的服务器进程数
#MinSpareServers:保留备用的最小服务器进程数
#MaxSpareServers:保留备用的最大服务器进程数
#ServerLimit:服务器生存期内MaxClient的最大值
#MaxClient:允许启动的最大服务器进程数
#MaxRequestsPerChild:服务器进程服务的最大请求数
StartServers 8
MinSpareServers 5
MaxSpareServers 20
服务器限制256
MaxClients 256
MaxRequestsPerChild 4000

您可以将
MaxClients
值设置为所需的值,然后重新启动服务器以应用更改。

我尝试了所有配置,但不幸的是,它们都不重要。如果只是conf问题,那么它应该对控制台应用程序和服务都有效。昨天我终于找到了原因。重要的是windows桌面堆的大小。Windows只为每个用户服务分配768kb的堆大小,不知何故,我的进程使其100%使用,并导致其他用户服务失败。无论如何谢谢你!