博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
是谁动了我的CPU!
阅读量:2731 次
发布时间:2019-05-13

本文共 1643 字,大约阅读时间需要 5 分钟。

是谁动了我的CPU!

发表于
2012-12-10 17:15
2890次阅读| 来源
Ofir Nachmani个人博客
5 条评论| 作者
Ofir Nachmani

摘要:计算资源通过云平台在用户中实现共享,这是云最重要的特色之一。然而除了共享这些资源,IaaS平台还有它的“云魔法”。这个魔法帮助IaaS满足用户需求的同时,还充分的保证了服务器的稳定运行。然而在你CPU达到峰值一段时间后,是不是发现速度忽然变慢了?

云最重要的一个特色就是在多个用户中共享资源。缺少了共享和资源优化的能力,云服务供应者就无法给业务提供可扩展性及对“规模经济”的支持。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消耗负载。总而言之,这里的重点不在于资源的多少,而是能使用有效的手段去控制负载的平衡。

原文链接:  (编辑/仲浩 王旭东/审校)

转载地址:http://wtcxd.baihongyu.com/

你可能感兴趣的文章
ORACLE物化视图-通过Oracle Dimension来优化物化视图的查询
查看>>
oracle数据仓库中三种优化
查看>>
oracle10g新特性——物化视图 Advisor(中文称为顾问
查看>>
Oracle9i实体化视图
查看>>
物化视图每天自动刷新2次的方法
查看>>
bitmap位图索引多方面介绍
查看>>
概述:位图索引在数据仓库中的作用- Oracle 数据仓库- CNOUG
查看>>
索引在数据库中的应用分析
查看>>
linux的chmod与chown命令详解
查看>>
Linux的mount命令简介
查看>>
projectforge研究第三天:采用Wicket框架,HSQLDB数据库
查看>>
Redis常用的命令(四)-------hash
查看>>
Redis常用的命令(三)------字符串
查看>>
Redis常用的命令(一)-------启动、配置等
查看>>
Redis常用的命令(二)------key的基本操作
查看>>
Java中Process类的使用与注意事项
查看>>
Java中Long、String、Date 类型之间的转换
查看>>
Redis中连接池使用的相关问题
查看>>
bsh(BeanShell)动态执行java代码
查看>>
Redis中PipeLine使用(一)
查看>>