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 / 问题 / 834692
Accepted
philh
philh
Asked: 2017-02-25 04:23:11 +0800 CST2017-02-25 04:23:11 +0800 CST 2017-02-25 04:23:11 +0800 CST

来自 apache 的 408 错误,来自 dhclient 和 sshd 的“fork:无法分配内存”

  • 772

在过去的三个晚上,我有一个 EC2 服务器开始给出 408 错误以响应 Web 请求。当我早上进来的时候,我不能ssh进来;我必须使用管理控制台重新启动。dhclient 和 sshd 都给出了错误消息,上面写着“fork:无法分配内存”。

据我所知,这只发生在一台服务器上。每次细节都略有不同:

第一天晚上,它首先发生在 19:30 左右(根据 /var/log/messages),但仍然有“绑定到”消息。然后从20:00左右到20:30左右,有很多DHCPREQUEST,之后就没有成功绑定。sshd 错误从大约 21:10 开始(根据 /var/log/secure)。

第二天晚上,我们在 18:45 到 19:15 看到 DHCPREQUEST 行,然后开始出现 fork 错误。sshd 错误从 18:20 开始。

此时我通过 yum 升级了 dhclient,看看是否有帮助。(此时我还没有看到 sshd 错误。)它没有。

第三个晚上看起来和第一个晚上一样,18:30 出现分叉错误,19:00 到 19:30 出现 DHCPREQUEST。但随后在凌晨 4 点 15 分,OOM 杀手进来并杀死了一个 httpd 进程。OOM 杀手头两个晚上都没有出现。sshd 错误从 19:30 开始,在 4:15 出现很多“Received disconnected”错误。

AWS 开发人员论坛上的这个线程表明 dhclient 可能在环境变量中存在内存泄漏,但如果是这样,我看不到它。这似乎也不是一个缓慢的泄漏:它每天晚上都在早些时候发生,但是我在升级 dhclient 后于 17:00 重新启动了服务器,所以第三次它启动了不到两个小时。

我考虑过来自 apache 的内存泄漏,但它似乎与 apache 日志中的任何特定内容不相符,而且我无法通过同时向服务器发送多个内存密集型请求来触发它。在那种情况下,我希望 OOM 杀手整整三个晚上都参与其中。

apache 日志中有一件值得注意的事情,就是三个连续行的时间戳:24/Feb/2017:02:10:05, 23/Feb/2017:18:23:05, 24/Feb/2017:07 :03:20。这些请求中的第二个是 500,而不是 408。所以我猜该请求以某种方式运行了 8 小时或更长时间,这可能会占用内存。前两个晚上没有这样的事。

基本上,我不知道发生了什么。我目前的计划是在同一个归置组中启动一个新服务器,将域指向那个,然后让两者都运行,看看会发生什么。但我正在寻找有关如何诊断和解决此问题的建议。

更新

我已经按照用户ochach 的建议安装了一个简单的ps/cron 监视器后触发了这个。看来我确实是内存不足了, httpd 是罪魁祸首;我不知道为什么OOM杀手没有运行。

dhcp amazon-ec2 ssh apache-2.4 memory-leak
  • 1 1 个回答
  • 2351 Views

1 个回答

  • Voted
  1. Best Answer
    3h4x
    2017-02-25T04:40:47+08:002017-02-25T04:40:47+08:00

    安装监控工具并检查哪个进程内存不足。当您知道哪个进程出现内存泄漏时,您可以从那里尝试隔离问题。还要检查 dmesg 是否有内核杀死的任何 oom。

    要查明问题,您可以添加“ps aux --sort -rss | head -n 10”以每分钟运行一次并附加到非临时设备上的文件中。

    除此之外,你可以安装单独的监控,如 nagios、prometeus 或使用 sar/sysstat。

    • 0

相关问题

  • DHCP 无法更新 DNS,没有 Active Directory

  • 在 SBS 2008 上禁用 DHCP?

  • 如何在 Ubuntu 中设置搜索域(和其他 resolv.conf 参数)?

  • DHCP/网络问题

  • 在一个 LAN 中使用两台 DHCP 服务器

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