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 / 问题 / 388906
Accepted
ananthan
ananthan
Asked: 2012-05-15 06:24:35 +0800 CST2012-05-15 06:24:35 +0800 CST 2012-05-15 06:24:35 +0800 CST

来自 Apache 中单个 IP 地址的太多 ESTABLISHED 连接

  • 772

netstat -ntp |grep 80ESTABLISHED显示来自单个 IP 地址的连接过多。其中大约300 个,这不是攻击,用户使用 2G 连接访问 Apache。其他 2G 连接也是如此。因此,Apache 的孩子用完了。

早些时候它显示太多close_wait,启用后 tcp_tw_reuse显示tcp_tw-recycle不多close_wait,但ESTABLISHED连接数量增加了。

我们正在使用具有 48 GB 内存的 Ubuntu 11.04

keepalive On
keepalive timeout 10
max clients 800
max-request-perchild 4000
timeout 300

我已设置syn_ack为 1 和syn_retries2。

在wifi上没有这样的问题。连接正常关闭,但使用 2G 连接时,Apache 的子节点用完并且连接过多ESTABLISHED。

我也试过将超时从默认的 300 设置为 30,但是由于我们的项目是手机图像托管,客户端无法正确上传图像,因为它们经常超时。还有很多408消息,所以将其更改为默认300

apache-2.2 timeout tcpip netstat
  • 3 3 个回答
  • 6463 Views

3 个回答

  • Voted
  1. DukeLion
    2012-05-16T22:50:18+08:002012-05-16T22:50:18+08:00

    该问题与低速客户端有关。解决此问题的最佳方法是使用反向代理解决方案,例如 nginx、varnish 或类似的软件(如果来自 apache)。一个好的反向代理服务器可以毫无问题地处理数千个连接。

    为什么将 Nginx 设置为反向代理是个好主意?

    • 2
  2. Best Answer
    symcbean
    2012-05-17T00:31:57+08:002012-05-17T00:31:57+08:00

    tcp_tw_reuse 和 tcp_tw-recycle 和 tcp-fin_timeout 到 30

    fin 超时在这里有帮助,但重用和回收?为什么?

    保活超时 10

    这太愚蠢了。即使使用拨号,这也应该是 3 或更少。

    超时 300

    你知道这是做什么的吗?这可能是默认值,但又太高了。

    您可以尝试使用 wireshark 捕获一些流量,以准确了解连接未关闭的原因。

    正在使用 mod_reqtimeout 一个选项

    仅当客户严重崩溃并且您不介意为他们提供服务时。

    我们应该搬到 ngnix 服务器吗

    它肯定会更容易地处理慢速连接,但是您可能想用作代理(并且您可以使用 iptables 通过它有选择地/透明地路由特定子网)

    • 2
  3. Ladadadada
    2012-05-15T06:35:37+08:002012-05-15T06:35:37+08:00

    您是否尝试过将Timeout指令降低到更低的位置,例如10or 5?

    或者,您可以尝试从 prefork MPM 切换(如果可能)并使用事件驱动模型,例如 Apache 2.4 中的事件 MPM 或不同的 Web 服务器,例如 nginx。

    您还可以使用 nginx(或类似的)作为 Apache 前面的反向代理。代理将等到它收到整个请求,然后再向 Apache 发出上游请求。然后,此请求将不会在中间有任何延迟。

    您的设置也可能导致或加剧 Apache 子级用尽的问题Keepalive。考虑关闭它或降低该keepalive timeout值。当然,将其设置得太低可能会使它变得毫无用处。

    • 1

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

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

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

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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