【问题标题】:aws rds 100% cpu 2 vcoresaws rds 100% cpu 2 vcores
【发布时间】:2017-03-20 19:12:33
【问题描述】:

我目前使用 T2.Micro RDS 和 SQL Express。

由于正在运行的应用程序负载很重,有时访问者的 1 个请求可能需要 30 秒才能完成。这使得 RDS 工作 100% CPU。结果是任何其他访问者同时访问该网站并且在 100% CPU 负载期间,该网站需要更长的时间来回答。

T2.micro 有 1 个 vCPU。 我正在考虑升级到具有 2 个 vCPU 的 T2.medium。 问题是,如果我有 2 个 vCPU,我会避免瓶颈吗? 例如,第一个访问者有 30 秒的请求,使用 vCPU #1,第二个访问者同时来,他使用 vCPU #2 吗?这对我的情况有帮助吗?

另外,我在 aws rds 中没有看到任何用于查看 CPU 的选项。是否有选择更快的 vCPU 的选项?

谢谢。

【问题讨论】:

    标签: amazon-web-services load cpu rds


    【解决方案1】:

    操作系统的调度程序会自动处理所有可用内核上正在运行的线程的分布,以便在最短的时间内完成尽可能多的工作。

    所以,是的,只要运行多个查询,多核机器就应该提高性能。如果一个单一的、CPU 密集型、长时间运行的查询(仅此而已)在 2 核机器上运行,您可能会看到的最大 CPU 利用率约为 50%……但只要有运行不止一个查询,它们中的每一个都将一次在一个内核上运行,并且系统实际上可以随着工作负载的变化在可用内核上移动一个线程,以将它们放在最佳内核上。

    t2.micro 是一个非常小的服务器,但 t2 是一个很好的价值主张。对于所有的 t2 级机器,无论内核数量如何,都不允许您连续运行 100% CPU,除非您有足够的可用 CPU 积分余额。这就是t2如此便宜的原因。您还需要关注这个指标。 CPU 积分会随着时间的推移自动获得,并通过使用 CPU 来消耗。升级 t2 机器的第二个动机是,较大的 t2 实例比较小的实例更快地获得这些积分。

    http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html

    【讨论】:

    • 非常感谢我的朋友的回答。有几个队列在运行,而不仅仅是一个(打包在一个存储过程中)。
    • 通常情况下,存储过程中的查询将连续运行,而不是并行运行,因此我希望它仍相当于“1 个查询”,除非您多次运行该过程同时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2023-02-22
    • 2019-12-18
    • 2015-12-14
    相关资源
    最近更新 更多