【问题标题】:EC2 Instance Requires Daily RestartEC2 实例需要每天重启
【发布时间】:2021-10-14 18:47:26
【问题描述】:

我正在运行 AWS Linux 的 AWS t2.micro EC2 实例上运行 Wordpress 博客。然而,大多数时候我醒来都会收到一封电子邮件,说我的博客已离线。发生这种情况时,我无法通过 SSH 连接到 EC2 实例,但是在 AWS 仪表板上它显示为在线,并且没有任何指标看起来太可疑。

我收到关于博客关闭的通知的时间是在 CPU 利用率图表上的第一个高原开始之后 - 凌晨 4 点 31 分。

从 AWS 控制面板/应用程序重新启动可以修复一两天的问题,但我想要更持久的修复。

谁能建议我可以对我的实例进行任何更改以使其更可靠地运行?

[编辑 - 2018 年 2 月] 在好几个月后,这种情况又开始发生了。这周的每个早晨,我都会收到一条警报,说我的博客离线了——重新启动服务器会使它重新上线。今天早上我能够对其进行调查并能够通过 SSH 登录。运行 top 给出以下结果(我注意到缺少 http/mysqld):

我过去 72 小时的 CloudWatch 指标是:

较大的峰值是我重新启动实例的位置。正如您从 CPU 余额中看到的那样,虽然有峰值,但它们并不是巨大的峰值,因为 CPU 信用余额指标几乎没有下降。

【问题讨论】:

  • stackoverflow.com/a/11928451/1562662 这可能是一种可能的原因,请查看 CloudWatch 中的 CPUCreditBalance。 t2 micro 对于开发/测试负载很有用,对于生产负载使用 m instance family
  • 谢谢,但我很确定不是这样,我设置了警报,当我的信用不足时会警告我。我已将学分指标添加到问题中,以获得完整的集合。我的每日最高浏览量低于 50,所以我应该可以摆脱 t2.micro,这些问题似乎与“繁忙”时期无关。
  • 您是否检查过控制台输出 (docs.aws.amazon.com/AWSEC2/latest/UserGuide/…) 是否有值得注意的内容?
  • 您可以监控实例的内存。 EC2 基础设施看不到该信息,但有一个官方/非官方script 用于将其添加到 CloudWatch。文档将其称为“示例”,因为它不受 AWS 官方支持/保证,但它完全可用。 EC2 实例基本稳定。您机器上的某些东西正在最大化内存,如果您正在运行它,很可能是 Apache。还有sudo egrep -i 'kernel|oom' /var/log/syslog(或/var/log/messages)。
  • @Michael-sqlbot 是对的,首先要做的就是监控内存使用情况。

标签: wordpress amazon-web-services amazon-ec2


【解决方案1】:

由于这个问题有很多观点,我想我会发布我用来解决这个问题的解决方法。

我仍然不知道我的博客为什么会离线,但我知道重启 EC2 实例可以恢复它,所以我决定自动重启。

这个解决方案分为三个部分:

  1. 检测来自 Jetpack 的“博客离线”电子邮件并将其发送到 AWS。我在我的 Gmail 上创建了一条规则来处理这个问题,将电子邮件转发到 AWS SES 监控的地址。
  2. SNS 触发 AWS Lambda 函数运行。
  3. Lambda 函数会重启 EC2 实例。

现在我通常会在原始“博客离线”电子邮件的几分钟内收到“博客重新上线”电子邮件。

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 2015-05-11
    • 2019-04-21
    相关资源
    最近更新 更多