我的Amazon EC2微型实例经常有100%的CPU使用率。 我只有一个WordPress的安装。 我仍然在生产模式,所以没有用户,但我得到100%的CPU使用率。
有人知道如何减less它? 我每小时收到亚马逊电子邮件通知,因为这会持续超过300秒的时间。
我已经将我的数据库移动到RDS,但没有解决这个问题。 它只是让它好一点。 在使用我的数据库转到RDS之前,我的网站在加载一个网页时总是崩溃。
我的mysqld.log提供了errno 12错误,这也是为什么我在my.cnf中做了innodb_buffer_pool_size = 256M,但是没有带任何东西。
将感谢每一个小费。
请记住, m2.micro实例就是这样 – 它们很小。 任何实际的负载量都会使它们达到最大。
正如@zvik在他的评论中指出的那样,你应该找出哪些进程消耗了最多的内存和/或CPU周期。 他build议运行top ,这是在Linux发行版上find的命令。 按Shift-P ,它会根据CPU的使用情况对它们进行sorting。 您将需要使用这些信息来确定瓶颈在哪里。 例如,如果这是在运行Apache,Apache的默认configuration可能是启动比服务器能够进行更多的进程。
尝试运行top ,看看哪些命令消耗最多的资源。
你的问题实际上可能是亚马逊堆栈中发生的“CPU窃取”(事实上,任何虚拟化基础架构)。 你可以在这里阅读更多关于CPU窃取的内容。
从本质上讲,虚拟机处于空闲状态,亚马逊正在“借用”一些CPU周期,以便给需要它的其他人 – 这是虚拟化环境的标准做法,其中物理服务器资源(如RAM使用率和CPU周期)通常极度过度提交。
要检查CPU是否被窃取,请运行top并查看此处突出显示的%st值:

如果此值不是零,则表示您的虚拟机的CPU周期正在“借用”。