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

Jab*_*a L 9 central-processing-unit amazon-ec2

我的 Amazon EC2 微型实例的 CPU 使用率经常为 100%。我只有一个wordpress安装。我仍然处于生产模式,所以没有用户,但我得到了 100% 的 CPU 使用率。

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

我已经将我的数据库移至 RDS,但没有解决该问题。它只是让它变得更好一点。在使用我的数据库迁移到 RDS 之前,我的网站在加载一个网页时总是完全崩溃。

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

将感谢每一个提示。

Cra*_*son 15

您的问题实际上可能归结为 Amazon 堆栈中发生的“CPU 窃取”(事实上,任何虚拟化基础设施)。您可以在此处阅读有关 CPU 窃取的更多信息。

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

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

顶部命令输出

如果此值不为零,则表示您的 VM 的 CPU 周期正在“借用”。


And*_* M. 7

请记住,m2.micro实例就是这样——它们很小。任何实际的负载量都会使它们最大化。

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

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