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


9

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

有人知道如何减少吗?我每小时都会收到Amazon Email通知,因为它持续超过300秒。

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

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

会为每一个提示而感激。


1
您需要监视实例以查看发生了什么。您没有在说您使用的是哪个操作系统,但是如果使用Linux,那么它就会变得快速而简单。从长远来看,您应该考虑其他事项。
user9517 2013年

在linux top命令中,什么进程正在消耗您的cpu。按(Shift + P)以CPU利用率对进程进行排序感谢Sandeep
ZVIK 2013年

谢谢@lian!是的,我正在使用Linux。因此,正常情况下,它经常会高达100%的CPU?我已经在监视警报,并且每天都会通过电子邮件收到此烦人的警报通知。您是说Ec2不值得吗,尤其是仅当大量投资时才使用小包装吗?感谢您的帮助
雅巴大号

感谢@ZVIK对您的帮助!您能否再详细解释一下。我想我现在还不了解。我在哪里可以按(Shift + P)。在SSH命令行中?很抱歉,我的经验不足。出现的另一件事是一段时间后我的SSH终端变得非常慢。键入ssh命令并获得响应有时会花费很长时间,这非常延迟。我认为也是因为CPU使用率过高。只有通过使用命令“ sudo service httpd stop / start”和“ sudo service mysqld restart”重新启动,我才能使其再次运行得更快。但这不会持续很长时间。
Jaba L 2013年

@Jaba LI认为代码中存在内存泄漏
ZVIK 2013年

Answers:


7

请记住,这些m2.micro实例只是它们很小。任何实际负载都会使它们最大程度地消耗。

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

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


1
我检查了一下,Apache占用了大部分资源。m2.micro真的很容易加载。我以为可以在小型生产现场使用micro,但这可悲的是根本不可能。感谢您的帮助
雅巴大号

15

您的问题实际上可能归结于发生在整个亚马逊堆栈(事实上,任何虚拟化基础架构)上的“ CPU窃取”。您可以在此处阅读有关CPU窃取的更多信息。

本质上,您的VM处于空闲状态,而Amazon在“借用”您的某些CPU周期以提供给需要它的其他人-这是虚拟化环境的标准做法,在该环境中,物理服务器资源(例如RAM使用率和CPU周期)经常被大量过量使用。

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

最高命令输出

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


1
非常感谢@ craig-watson的回答。我刚刚检查了%st,它在0-5%之间。也感谢您的链接,它非常有帮助
Jaba L
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.