【问题标题】:Multiple apache processes with over 33% cpu and 1.3g memory each?多个 apache 进程,每个进程超过 33% cpu 和 1.3g 内存?
【发布时间】:2012-02-17 05:07:58
【问题描述】:

我们在 Amazon x-large AWS 服务器上托管了许多站点。每当我重新启动 apache 时,我都会运行 top 并查看 apache 进程的数量(6-8),这些进程会迅速将 cpu 百分比和内存百分比提高到 33% cpu,有时是 50% cpu 和每个高达 1.3g 的内存!他们将在 top 停留 10 - 20 分钟,然后另一个将以相同的行为启动。

如果我在其中一个进程上执行 strace,我将得到一个如下所示的无序列表:

access("/etc/localtime", R_OK)          = 0

access("/etc/localtime", R_OK)          = 0

access("/etc/localtime", R_OK)          = 0

access("/etc/localtime", R_OK)          = 0

access("/etc/localtime", R_OK)          = 0
...

列表不会停止。如果我让这些进程继续运行,它们最终会停止服务器,我需要重新启动整个虚拟机。

任何人对为什么进程不断访问此文件有任何想法,或者我如何找出为什么会发生这种情况的另一种方法?

【问题讨论】:

  • 您是否尝试过删除托管在那里的网站并逐个添加它们,直到出现这种行为?这可能是其中一个网站的错误。
  • 这是一种有趣的方法,但不幸的是,我无法在任何时间内关闭这些站点。你认为有一种方法可以跟踪哪个网页/文件是负责任的吗?
  • 是的...关闭每个站点,看看它是否修复了它。如果人们抱怨,说这是安全问题。由于您已经在重新启动 Apache,因此您至少已经将它们关闭了一段时间。
  • 当我重新启动 apache 时,停机时间是如此之快,以至于没有人注意到。这就是为什么我可以摆脱它。但是,如果这是唯一的方法,那就这样吧,我会在当天晚些时候再试一试。谢谢。
  • 我会检查 lsof 以获取线索。它可能会显示一个打开的文件(例如,某人损坏的 PHP 脚本)。 gdb 是另一种方法。顺便说一句,您可以使用 SIGKILL (kill -9) 在不到 10-20 分钟的时间内将它们击倒。另外,检查mod_statusExtendedStatus

标签: apache memory memory-leaks process


【解决方案1】:

如果您启用mod_status 并设置ExtendedStatus on,那么您可以访问http://server/server-status(或您设置为使用server-status 处理程序的其他位置),您将获得每个Apache 进程/线程的表正在做:

Srv  PID   Acc        M  CPU   SS  Req   Conn  Child  Slot  Client  VHost            Request
⋮
3-0  2129  0/167/167  _  1.13  495 0     0.0   0.33   0.33  ::1     Zia.metrics.net  GET /mrtg/mrtg-l.png HTTP/1.1
4-0  2130  1/150/150  W  1.11  0   0     1.4   0.30   0.30  ::1     Zia.metrics.net  GET /server-status HTTP/1.1
⋮

状态页面包括完整的键和字段描述,以及其他一些摘要状态。您可能应该保护它只对您可见,而不是互联网:

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 ::1
</Location>
ExtendedStatus On

当然,您可以使用 Apache 中可用的任何访问控制方法(例如 Basic 或 Digest 身份验证)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多