【问题标题】:Amazon Web Service Micro Instance - Server CrashAmazon Web Service 微实例 - 服务器崩溃
【发布时间】:2013-03-29 23:54:56
【问题描述】:

我目前正在使用 AWS 微实例作为允许用户上传照片的网站的 Web 服务器。两个问题:

1) 在查看我的 CloudWatch 指标时,我最近注意到 CPU 峰值,该网站目前接收的流量非常少,但在这些峰值期间变得完全无法使用。这些尖峰可能会持续几个小时,并且重置服务器并不能消除尖峰。

2) 虽然看似无关,但每当我在 Twitter 上发布我的网站链接时,服务器就会崩溃(即,建立数据库连接时出错)。重启 Apache 和 MySQL 后,网站恢复正常功能。

我唯一的猜测是这个问题在某种程度上是微实例缺陷的结果。不幸的是,当我升级到小型实例时,由于微型实例可以有两个 EC2 计算单元,因此站点实际上变慢了。

有什么建议吗?

【问题讨论】:

    标签: twitter amazon-web-services crash


    【解决方案1】:

    如果您想留在 AWS(微实例)的免费套餐中,您应该尽可能地从您的 EC2 实例上卸载。

    我建议您将图像直接上传到 S3,而不是通过您的网络服务器(请参阅此处的一些示例:http://aws.amazon.com/articles/1434)。

    S3 也可用于为您的大多数网页(图像、js、css...)提供服务,而不是为您的弱网络服务器提供服务。您还可以将 S3 中的这些文件作为来源添加到 Amazon CloudFront (CDN) 分发中,以提高您的应用程序性能。

    另一个可以帮助您减轻工作负担的服务是 SQS(简单队列服务)。您可以将一些请求(例如上传完成)作为消息发送到 SQS,而不是处理来自用户的在线请求,并让您的读者按照自己的节奏处理这些消息。这是处理由多个用户同时使用您的服务造成的瞬时负载的好方法。

    另一个服务是 DynamoDB(托管 NoSQL DB 服务)。您可以将大部分当前 MySQL 数据和查询放在 dynamoDB 上。 Amazon DynamoDB 还提供您可以享受的免费套餐。

    结合上述方法,您可以让您的微实例处理剩余的少数动态页面,直到您需要扩展您的服务并取得越来越大的成功。

    【讨论】:

    • 太棒了!感谢您的建议!我需要研究所有这些选项并找出最容易实现的选项。
    【解决方案2】:

    等等……对不起。您是说您在微型实例上同时运行 Apache MySQL 服务器吗?

    首先,这绝不是一个好主意。其次,as documented,micros 的 I/O 很低,只能突发到 2 个 ECU。

    如果您想继续使用资源受限的微型实例,您需要 (a) 将 MySQL 放在其他地方,并且 (b) 使用 Nginx 之类的东西而不是 Apache,因为它需要的资源要少得多。否则,您应该认真考虑加大尺寸。

    【讨论】:

    • 我认为在微型实例上运行 Apache 和 MySQL 可能会导致问题。感谢您的回复!
    【解决方案3】:

    我遇到了同样的问题:据我了解,问题是当您达到预定义的使用量时,AWS 会减慢您的速度。这意味着它们允许小范围爆发,但之后事情会变得非常缓慢。

    您可以通过登录并做一些事情来测试它。如果你使用 CPU 几秒钟,那么整个盒子会变得非常慢。在那之后,您将不得不等待什么都不做,才能让一切恢复“正常”。

    这是我选择 VPS 而不是 AWS 的主要原因。

    【讨论】:

    • 不知道为什么这被否决了。请至少添加评论以说明错误的原因。谢谢。
    猜你喜欢
    • 2011-11-17
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2014-08-03
    相关资源
    最近更新 更多