AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1267
Accepted
Eddie
Eddie
Asked: 2009-05-01 08:54:59 +0800 CST2009-05-01 08:54:59 +0800 CST 2009-05-01 08:54:59 +0800 CST

什么会导致 Apache HTTPD 无限期地使用 100% CPU

  • 772

运行轻负载 Apache HTTPD 2.0 的应用程序偶尔会遇到一个(或多个?)Apache 进程占用 100% CPU 的问题。我们目前运行的是 HTTPD 2.2,我可能在 2.2 中也看到了这一点。我不确定。在某些情况下,CPU 使用率会阻止对托管 HTTPD 的 Windows 服务器的除控制台访问之外的所有访问。我一直无法找到导致 Apache 这样做的原因。

环境是 Apache HTTPD 直接提供静态内容,使用 mod_rewrite 但没有太多其他自定义配置。HTTPD 通过mod_jk(1.2.25) 与 Apache Tomcat (5.x) 对话。

有没有其他人遇到过这个并解决了它?我们安装的解决方法是使用以下配置将每个 Apache HTTPD 子进程限制为最大请求数:

MaxRequestsPerChild 1000

其中因为应用程序使用 HTTP/1.1,这实际上是每个子进程 1000 多个请求,更像是每个子进程 100,000 个请求。

performance apache-2.2 httpd
  • 7 7 个回答
  • 62467 Views

7 个回答

  • Voted
  1. Best Answer
    John Dalton
    2009-05-04T20:08:09+08:002009-05-04T20:08:09+08:00

    锁定很可能发生在模块中,而不是 Apache 本身。您的设置听起来很小,所以我怀疑mod_jk是罪魁祸首。如果限制MaxRequestsPerChild解决了问题,那么我会说这是一个可以接受的解决方法。模块中的错误可能仅在很长时间或多次请求后才触发,除非您真的热衷于追踪此问题,否则将其消除可能就足够了。

    如果您想跟踪它,那么首先要做的就是配置CoreDumpDirectory指向服务器用户可以写入的某个位置。如果您可以让违规过程留下核心文件,那么它应该可以帮助您找到问题的原因。您可以在Apache Debugging Guide中找到有关执行此操作的一些提示。

    • 5
  2. cbrulak
    2009-05-01T12:18:53+08:002009-05-01T12:18:53+08:00

    当我看到这个时,这是因为: - 托管应用程序或脚本导致了问题。例如,它有一个无限循环或其他东西 - 由于锁定或其他一些问题,操作系统变得不稳定,重新启动暂时解决了问题。

    我的建议: - 重新启动机器。- 等待并查看是否再次发生这种情况 - 重新启动服务器而不使用 mods 等。- 开始一一开启每个模组,每次观察使用情况。

    • 2
  3. reconbot
    2009-05-01T11:30:24+08:002009-05-01T11:30:24+08:00

    限制 MaxRequestsPerChild 将有助于内存使用,但它不应该像您所说的那样影响 cpu。可能发生的是您的 mod_jk 正在崩溃,并且由于它是一个 apache 模块,因此它显示在 httpd 进程下。

    • 1
  4. carson
    2009-05-03T10:16:58+08:002009-05-03T10:16:58+08:00

    当您有一个不存在的日志目录时,我实际上已经看到这种情况发生。我不确定他们为什么不能更好地处理它,但您可能想确保所有日志目录都在那里并且进程可以写入它们。

    • 1
  5. dims
    2009-05-28T01:32:16+08:002009-05-28T01:32:16+08:00

    为 apache 安装 mod_proctitle

    • 1
  6. ericslaw
    2009-07-30T06:01:41+08:002009-07-30T06:01:41+08:00

    RLimitCPU 并不总是有帮助,因为并非 apache 代码的所有部分都对其进行了检查。

    MaxRequestsPerChild 可能也无济于事,因为我在相对“新鲜”的孩子身上看到了这一点。

    就我而言,我怀疑这与我们正在使用的模块(mod_perl)有关,也可能与套接字连接断开有关。我们似乎只在浏览器连接时看到这个问题,而不是来自 wget 或 curl(我们大量用于“数据传递”)。

    • 1
  7. DevsMind
    2016-06-29T02:17:13+08:002016-06-29T02:17:13+08:00

    在找出问题的根本原因之前,我也面临着同样的问题......

    问题:目前,我的网站在 Windows 云服务器上使用 XAMPP 在 Wordpress 上运行,CPU 使用率达到 100%

    解决方案:检查我的 Apache 日志文件(access.log),有人不断尝试访问 xmlrpc.php 文件和每秒 10 个请求,这使得 Apache 服务器忙于处理传入请求,所以在这里我建议你阻止传入从您的 .htaccess 文件访问 xmlrpc.php 文件,也阻止了我的托管服务提供商的 IP,因此 CPU 使用率现在最大为 3-5%。

    注意:此解决方案适用于运行 Wordpress 的网站

    http://devslounge.com/htaccess/can-cause-apache-httpd-use-100-cpu-indefinitely/

    https://wordpress.org/support/topic/xmlrpcphp-attack-on-wordpress-38

    • -1

相关问题

  • IIS 6.0 (Windows Server 2003) 上的 HTTP 压缩

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • 上线的第一天:如何不杀死您的网站

  • IIS 优化

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve