我正在使用实例类型为m3.medium
的Amazon EC2实例和Amazon RDS数据库实例。
在我的工作时间内,网站因CPU利用率达到100%而下降,而在晚上(非工作时间),CPU利用率为60%。
所以请为这个网站问题给我正确的解决方案。我不知道为什么我遇到这个问题。
我曾经为每一分钟设置了一个cron作业,但由于问题放缓我被删除了,但我仍然有网站问题。
当我尝试使用" top"命令,我有以下显示cpu用法的图像,其中httpd命令消耗更多的CPU使用,所以任何建议设置,以减少使用httpd命令的CPU使用 没有任何用户在两个图像下使用网站: 的 http://screencast.com/t/1jV98WqhCLvV 的 http://screencast.com/t/PbXF5EYI 网站同时访问5个用户 的 http://screencast.com/t/QZgZsiNgdCUl
答案 0 :(得分:2)
如果您的CPU利用率达到100%,您有两种选择。
看起来您需要一些计划的操作,因为您在非工作时间内不需要100%的CPU利用率。
最好的选择是使用 AWS AutoScaling with Scheduled actions 。 http://docs.aws.amazon.com/autoscaling/latest/userguide/schedule_time.html
AWS AutoScaling可以根据您的CPU利用率(或其他指标,如网络负载,磁盘读/写等)启动新的EC2实例。通过这种方式,您可以始终保持您的网站活跃。
使用AutoScaling计划操作,您可以指定指标,以便在非工作时间停止自动调整的实例,并在工作时间根据CPU利用率(或其他指标)停止自动调度实例。
如果您在某个时间点不需要它们,您甚至可以停止服务。
如果您不熟悉AWS AutoScaling,可以按照非常精确和简单的文档进行操作。 http://docs.aws.amazon.com/autoscaling/latest/userguide/GettingStartedTutorial.html
答案 1 :(得分:0)
如果您的网站拥有的访问者数量,cpu利用率达到100%,则必须考虑更改实例类型Auto Scaling或AWS CloudFront以便缓存尽可能多的http请求(静态和动态内容)。
如果访问者不是问题,并且EC2上有其他计划任务,我强烈建议通过AWS SQS& amp;去除这些工作量。 AWS Elasticbeanstalk - Worker type