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 / 问题 / 132829
Accepted
Stefan Lasiewski
Stefan Lasiewski
Asked: 2010-04-16 10:29:46 +0800 CST2010-04-16 10:29:46 +0800 CST 2010-04-16 10:29:46 +0800 CST

阿帕奇是否停滞不前?/server-status 显示超过 240 个请求,例如 "OPTIONS * HTTP/1.0" 200 - "-" "Apache (internal dummy connection)"

  • 772

一些细节:

  • 网络服务器:Apache/2.2.13 (FreeBSD) mod_ssl/2.2.13 OpenSSL/0.9.8e
  • 操作系统:FreeBSD 7.2-RELEASE
  • 这是一个 FreeBSD 监狱。
  • 我相信我使用的是 Apache 'prefork' MPM(我运行 FreeBSD 的默认值)。
  • 我使用 MaxClients 的默认值 (256)

我已启用 mod_status,并带有“ExtendedStatus On”。当我查看 /server-status 时,我看到了一些常规请求。我还看到来自“localhost”的超过 240 个请求,例如这些。

37-0    -   0/0/1   .   0.00    1510    0   0.0 0.00    0.00    127.0.0.2   www.example.gov OPTIONS * HTTP/1.0
38-0    -   0/0/1   .   0.00    1509    0   0.0 0.00    0.00    127.0.0.2   www.example.gov OPTIONS * HTTP/1.0
39-0    -   0/0/3   .   0.00    1482    0   0.0 0.00    0.00    127.0.0.2   www.example.gov OPTIONS * HTTP/1.0
40-0    -   0/0/6   .   0.00    1445    0   0.0 0.00    0.00    127.0.0.2   www.example.gov OPTIONS * HTTP/1.0

昨天我还看到来自本地主机的大约 2417 个请求,如下所示:

Apr 14 11:16:40 192.168.16.127 httpd[431]: www.example.gov 127.0.0.2 - - [15/Apr/2010:11:16:40 -0700] "OPTIONS * HTTP/1.0" 200 - "-" "Apache (internal dummy connection)"

http://wiki.apache.org/httpd/InternalDummyConnection上的页面说“这些请求是完全正常的,一般来说,你不需要担心它们”,但我不太确定。

为什么有超过 230 个?这些是活动连接吗?如果我有“MaxClients 256”和超过 230 个这样的连接,那么我的网络服务器似乎很危险地接近用完可用的连接。似乎 Apache 应该只需要少数这些“内部虚拟连接”

昨晚我们实际上发生了两次无法解释的中断,我想知道这些“内部虚拟连接”是否导致我们用完可用的连接。

更新 2010/04/16

8小时后。/server-status 页面仍然显示有 243 行显示“www.example.gov OPTION *”。我相信这些联系是不活跃的。服务器大部分处于空闲状态(当前正在处理 1 个请求,9 个空闲工作人员)。Unix 主机上只有 18 个活动的 httpd 进程。

如果这些连接不活跃,为什么它们会显示在 /server-status 下?我原以为它们会在初始化后几分钟过期。

apache-2.2 log-files freebsd dump ufs
  • 5 5 个回答
  • 13237 Views

5 个回答

  • Voted
  1. deleted
    2010-04-16T13:58:59+08:002010-04-16T13:58:59+08:00

    Apache 处理雷鸣般的牛群与您想象的略有不同。当您获得大量入站流量时,它会产生许多子进程,如果它确定需要更多,它会在下一个间隔内产生两倍的子进程,直到它最终有足够的进程来处理请求或达到 maxclients。

    如果您看到这些,则意味着 apache 只是在检查子进程,而导致 apache 分叉那么多进程的任何原因都可能消失了。是的,它们确实占用了客户端连接,但是,任何导致事情发生假脱机的事件都可能消失了。

    我会在您的日志中检查的第一件事是事件发生前的一堆 302。

    如果你有类似的东西

    <?php include("http://www.oursite.com/header.php");?>   
    

    header.php 丢失的地方和

    ErrorDocument 404 /404.php 
    

    其中 404.php 包含 header.php,您将得到一个递归循环,并且该页面上的点击将立即导致 apache 使用所有可用连接。

    • 5
  2. Mo.
    2010-04-22T05:15:59+08:002010-04-22T05:15:59+08:00

    我的理解是,鉴于这些是从父进程到子进程的连接,它们只是 Apache 跟踪子进程的操作。请记住:

    • 孩子们在处理完请求后可以闲逛很长一段时间
    • 内部虚拟连接定期发生
    • 如果孩子没有做任何其他事情(因为服务器大部分时间都是空闲的),虚拟连接将是它处理的最近的事情

    据我所知,虚拟连接并没有“耗尽”孩子。Apache 正在检查其子代的状态,而不是通过锻炼它们来测试它们是否工作。

    • 2
  3. Mo.
    2010-04-20T15:19:45+08:002010-04-20T15:19:45+08:00

    如果有记忆,这些是由轻量级代理(例如 Lighttpd)生成的测试连接,这些代理位于较重的服务器(例如 Apache)前面。

    鉴于您在监狱中,主机服务器是否可能通过 lighttpd 代理对(私有)监狱 IP 的请求?

    • 1
  4. Yves Junqueira
    2010-04-20T15:36:33+08:002010-04-20T15:36:33+08:00

    您需要找到哪些进程连接到您的 Apache 端口(我假设它是 80)。

    我没有 FreeBSD 系统,所以我可以确认命令,但至少在 Mac 上,这应该给你一个提示:

    $ lsof -i

    它将显示如下内容:

    COMMAND     PID  USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
    BadGuy    26655 yvesj   24u  IPv4 0x3f32270      0t0  TCP localhost:56696->localhost:56695 (ESTABLISHED)
    GoodGuy 26656 yvesj   15u  IPv4 0x5b7666c      0t0  TCP localhost:56695 (LISTEN)
    GoodGuy 26656 yvesj   16u  IPv4 0x72a9e64      0t0  TCP localhost:56695->localhost:56696 (ESTABLISHED)
    

    从这里您可以注意到 PID 为 26656 的进程正在侦听端口 56695 并且进程 26655 正在连接到该端口。这样您就可以识别谁是坏人(只是不要与第三行混淆,它显示了连接的另一端(goodguy=>badguy)。

    当您将此应用于您的案例时,您会发现系统上的哪些其他进程正在保持与您的 Apache 实例的这些连接。

    祝你好运!

    伊夫

    • 1
  5. Best Answer
    Stefan Lasiewski
    2010-06-09T13:25:40+08:002010-06-09T13:25:40+08:00

    嗯,这有一个出人意料的答案。这是由我们在午夜拍摄 UFS 文件系统快照时的文件系统问题引起的。

    这似乎是由 FreeBSD UFS 错误引起的。我们在 FreeBSD 主机上使用 FreeBSD Jails,并使用默认的 UFS 文件系统。UFS 文件系统很大——1.8TB。

    每晚一次,我们使用“dump(8)”运行备份。dump(8) 在备份之前创建了文件系统的快照,这冻结了文件系统。Dump 应该适用于小于 2TB 的文件系统,但在我们的案例中它失败了。这个人也有同样的问题。

    (我将我的答案从问题部分移到了答案部分。stefan,20100608)

    • 1

相关问题

  • 在您分发的应用程序中使用 Apache HTTPD 运行 SSL 的最佳方式是什么?

  • 阿帕奇的替代品

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

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

    • 30 个回答
  • Marko Smith

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

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