是谁动了我的CPU!

来源:互联网 发布:成捷迅软件使用 编辑:程序博客网 时间:2024/04/29 13:11

云最重要的一个特色就是在多个用户中共享资源。缺少了共享和资源优化的能力,云服务供应者就无法给业务提供可扩展性及对“规模经济”的支持。IaaS在包含了计算能力、储存和网络设施的同时还包含了它的“云魔法”。而这些资源的使用必须经过充分优化用以满足用户需求,因此他们只能在用户中共享。

什么是Steal Time?

衡量服务器对CPU利用的基本标准就是闲置能力 —— CPU的空闲量。CPU的使用率由下面几种分配决定:

  • User —— 运行的应用程序
  • System —— 操作系统
  • Interrupt —— 硬件中断
  • Wait —— 等待I/O操作的完成
  • Steal —— 与虚拟机无关的周期
  • Idle —— 未进行任何作业

Steal Time(ST)通常还被称作“Stolen CPU”,存在于虚拟计算环境 —— CPU使用内部虚拟机运行任务的时间,由Hypervisor将CPU周期分配给其他“外部任务”产生;而这些外部任务很可能就是你吵闹的邻居(云端共享同一片资源的用户)递交的。

AWS上的Steal Time

通过在AWS社区上的研究发现,在CPU达到峰值的一段时间后:系统会自动的将CPU收缩至一定的使用比例,那么你剩下的CPU就被“窃取”了。这种情况通常是云端对自己的保护,以避免崩溃的威胁

你可以找到更多关于AWS上Micro Instance信息的常见问题解答:“Micro实例会一直提供少量的CPU资源;而当额外的周期空闲时,AWS允许你将CPU资源扩充到2 ECU。它们非常适合那些吞吐量较低的应用程序;以及定期拥有大量的计算周期,而其它时间只为后台进程和守护进程提供少量CPU资源的网站”。 

在亚马逊开发者社区,你可以发现:

“举个例子:当我想做一个“yum update”的时候,系统在一分钟之内都没有响应;预想中这个操作会耗时3到5分钟,通常也需要这么久;但是今天只花了30秒到1分钟左右时间。”

 

 

亚马逊并没有详述Xen配置,尽管它们说:“实例根据CPU的使用率在本质上划分为两个级别:低标准等级、以及在这基础的个等级上拥有短暂飙升能力的等级。”了解我获悉的,使用标准的监测工具去监测CPU可能会误导云用户。举个例子:由于虚拟化层在底层的基础设施上,Linux实例不会报告CPU的正确使用率。为了得到EC2基础设施上正确的CPU利用率,云用户只能使用CloudWatch来测量。

另一个影响CPU使用率的重要方面在于任务的模型。这里必须区分两个负载模型:批处理和实时。前者能够更大程度上容忍资源的短缺,并可以等待一段可观的时间。批处理模型描述的任务一般都会生成一个稳定的使用率或者集合成一个总的CPU使用率,所以一旦CPU负载过重,批处理将会被顺延。而实时模型从不会被顺延,并且云供应商也会约束它的负载。此外,像亚马逊AWS这些云供应商更趋向去设计更多的批处理负载模型来控制它们服务器的负载。

为了更好的利用AWS的Micro Instance,你必须有能力控制你的在线资源。当然你也可以去做网络服务器配置的尝试,举个例子:限制用户数量。你需要使用S3来储存静态文件,比如:图像、视频和音频。使用其他AWS服务扩充你的应用性能需求可以将一些负载转移到其他的云资源上,从而降低你EC2实例的CPU消耗负载。总而言之,这里的重点不在于资源的多少,而是能使用有效的手段去控制负载的平衡。

原文链接:Who Stole my CPU ?  (编辑/仲浩 王旭东/审校)

欢迎关注@CSDN云计算微博,了解更多云信息。

 

 二、扩展Amazon新增CloudWatch监控服务 智能管理云应用

  本周一Amazon.com宣布增添更多网络服务到其EC2云产品,使客户可以更好地管理他们发送到“云”中的应用程序,主要包括:监控云资产、自动扩大产能、平衡流量提高效率。

  CloudWatch可以监控EC2应用的资源使用情况,包括CPU使用率、磁盘读取和写入、网络流量等。EC2总经理Peter DeSantis在一份声明中表示,通过该服务提供的数据,用户可以了解分配给具体某个应用的资源的运行状态、性能和整体需求模式。

  据DeSantis介绍,这些工具可以在EC2应用程序启动后几分钟内汇总并保存运行状态数据。

  Auto Scaling(自动缩放)功能允许EC2用户根据应用的实际情况扩大或缩小应用程序规模。DeSantis表示,通过设定服务质量和响应时间参数,EC2用户可确保应用程序在需求高峰时扩大规模,而在需求下降时相应的缩小资源占用。

  Elastic Load Balancing(弹性负载平衡)功能允许EC2用户自动分发应用流量,从而保证工作负载不会超过现有能力,并且在一定程度上支持容错。弹性负载平衡功能会识别出应用实例的状态,当一个应用运行不佳时,它会自动将流量路由到状态较好的实例资源上,直到前者恢复正常。

  CloudWatch和弹性负载平衡可立即购买。IT咨询机构Capgemini公司云计算主管Simon Plant认为,新服务提高了云中运行着的应用程序的可靠性。

  在亚马逊之前已经有同类产品问世。去年十一月,开源网站管理公司Hyperic宣布提供一项针对EC2的云应用监测服务。不过Hyperic现已被开源公司SpringSource收购 。