【问题标题】:Why there are so many apache processes running?为什么有这么多 apache 进程在运行?
【发布时间】:2014-01-01 08:32:15
【问题描述】:

我正在使用免费的 EC2 Micro 实例托管一个在 Linux 上运行 Apache 的小型测试网站。

当我尝试用“top”查看后台进程时,我看到了很多(30+)个“apache”用户

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

我不确定这是否正常。这是否意味着我可能被某人/病毒附身?

附: 我现在只希望 2-3 个测试用户使用它。这是一个 php + apache + mysql 架构师。

谢谢。

【问题讨论】:

  • 您能澄清几件事:网站有多小?您希望网站上有几十个用户还是少数几个?多少是很多? 100 个 apache 进程还是十几个?
  • 另外,您使用的是什么语言和 Apache 绑定?
  • 我现在只希望 2-3 个测试用户使用它。这是一个 php + apache + mysql 架构师。
  • 您的 Apache 配置对此有何看法?

标签: linux apache amazon-ec2


【解决方案1】:

Apache 将预先创建工作进程,因此,当出现负载峰值时,这些进程可以立即接收请求,而不是等待主进程产生足够多的请求。检查您的 httpd.conf 中的 MinSpareServers、MaxSpareServers 和 ServerLimit。

【讨论】:

  • 这是有道理的。但是,我将 MaxSpareSevers 更改为 12(保持 ServerLimit 和 MaxClient 为 128),重新启动 apache,但我仍然看到 30 多个 apache 进程。有什么想法吗?谢谢!
  • 在您的 httpd 配置文件中搜索字符串“server-status”。默认配置文件有一个示例,已注释掉,说明特殊 URL your.server/server-status 如何提供有关服务器和进程正在做什么的各种信息。删除 cmets,更改“接受自”部分以允许从您的客户端访问(默认拒绝任何地方),重新启动服务器,并检查特殊 URL。 server-info 也有类似的东西,但 server-status 有更多信息。
猜你喜欢
  • 2016-05-06
  • 1970-01-01
  • 2015-06-29
  • 1970-01-01
  • 2017-09-24
  • 2016-10-24
  • 2014-10-19
  • 1970-01-01
  • 2013-02-08
相关资源
最近更新 更多