Amazon EC2 微型实例的 CPU 使用率为 100%

Amazon EC2 微型实例的 CPU 使用率为 100%

我的 Amazon EC2 微型实例经常出现 100% CPU 使用率。我只在上面安装了 wordpress。我仍处于生产模式,因此没有用户,但我的 CPU 使用率却达到 100%。

有人知道如何减少它吗?我每小时都会收到亚马逊电子邮件通知,持续时间超过 300 秒。

我已经将数据库移至 RDS,但问题并未解决。它只是让情况好了一些。在将数据库移至 RDS 之前,我的网站在加载一个网页时总是会完全崩溃。

我的 mysqld.log 出现 errno 12 错误,这就是为什么我也在 my.cnf 中执行了 innodb_buffer_pool_size=256M 但没有带来任何东西。

非常感谢每一条小贴士。

答案1

请记住,m2.micro实例只是实例而已——它们很小。任何实际负载量都会使它们达到最大值。

正如 @zvik 在他的评论中指出的那样,您应该找出哪些进程消耗了最多的内存和/或 CPU 周期。他建议运行top,这是 Linux 发行版上的命令。按Shift-P,它将根据 CPU 使用率对它们进行排序。您将需要使用此信息来找出瓶颈所在。例如,如果正在运行 Apache,Apache 的默认配置可能是启动比服务器能力更多的进程。

尝试运行top并查看哪些命令消耗最多的资源。

答案2

您的问题实际上可能是由于“CPU 窃取”,这种情况发生在 Amazon 的堆栈中(事实上,任何虚拟化基础设施中都存在这种情况)。您可以阅读有关 CPU 窃取的更多信息这里

本质上,您的虚拟机处于空闲状态,而亚马逊正在“借用”您的部分 CPU 周期以提供给需要它的其他人 - 这是虚拟化环境中的标准做法,在虚拟化环境中,物理服务器资源(如 RAM 使用率和 CPU 周期)通常会被过度使用。

要检查 CPU 是否被窃取,请运行top并查看%st此处突出显示的值:

top 命令输出

如果该值不是零,则意味着您的虚拟机的 CPU 周期正在被“借用”。

相关内容