2013-12-13 51 views
12

我正在使用免费的EC2 Micro实例在Linux上运行Apache的小型测试网站。为什么有这么多的Apache进程在运行?

当我想看看后台进程与“顶”,我看到了很多(30+)“阿帕奇”用户

PID user  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 

12104 apache 20 0 429m 9024 2420 S 1.0 0.2 0:02.91 httpd    
12273 apache 20 0 429m 9108 2504 S 1.0 0.2 0:01.20 httpd    
... 

的我不知道这是正常的。这是否意味着我可能被某人/病毒附着?

P.S. 我只希望2-3个测试用户在这一点上使用它。这是一个php + apache + mysql架构师。

谢谢。

+1

你能澄清几件事情:一个网站有多小?你会期望数十个用户在网站上或几个?有多少是很多?几百个apache进程还是十几个? – dan08

+0

你还使用哪种语言和Apache绑定? –

+0

我只希望2-3个测试用户在这一点上使用它。这是一个php + apache + mysql架构师。 – user2210021

回答

14

Apache将预先创建工作进程,因此,当负载峰值进来时,进程可以立即提取请求,而不是等待主服务器产生足够的进程。检查你的httpd.conf中的MinSpareServers,MaxSpareServers和ServerLimit。

+0

这是有道理的。但是,我将MaxSpareSevers更改为12(将ServerLimit和MaxClient保持为128),重新启动apache,但我仍然看到30多个apache进程。有什么想法吗?谢谢! – user2210021

+1

在httpd配置文件中搜索字符串“server-status”。默认配置文件有一个例子,注释了特殊URL http://your.server/server-status如何提供有关服务器和进程正在执行的所有类型的信息。删除注释,更改“接受”部分以允许从客户端访问(默认拒绝任何地方),重新启动服务器并检查特殊URL。服务器信息存在类似的情况,但服务器状态有更多信息。 –

相关问题