基于Linux的世界级跨数据中心服务器CPU监控

发布时间:2020-01-22 20:30:02 作者:susumi 阅读量:2301

CPI²方案使用从硬件性能计数器获得的CPI(cycles-per-instruction,平均指令周期数)数据检测问题,中断或者关闭“问题”进程从而达到预期的效果,当然它会根据相同作业中大量任务数据认知这个任务的反常与否。

  据悉,Google已经实现世界级数据中心服务器监控,该项新技术可以监控在世界范围内的任何一台服务器上的任务,而它的最终目的就是想通过这些有效数据,来进行有选择性的进行干预或者关闭有关进程,是的CPU上的其他进程得以快速运行。
  
  而搜索巨头在其技术论文(PDF)中详细的描述了这一世界级监视技术的实现方法,相信使用大型基于Lin云计算基础设施的机构都会对此感兴趣。论文中写道:
  
  性能隔离是云计算的主要挑战。不幸的是,Lin缺少对共享资源中性能干扰的防御;这样的话,公有云中的应用程序将无法避免来自邻居们的干扰。
  
  CPI²方案使用从硬件性能计数器获得的CPI数据检测问题,中断或者关闭“问题”进程从而达到预期的效果,当然它会根据相同作业中大量任务数据认知这个任务的反常与否。
  
  本质上讲,CPI²让Google可以在集群上万个CPU核心中隔离单个核心上的单个性能低下任务,对这个任务进行检查并进行操作,而造成的CPU开销甚至不到0.1%。它并不需要特殊的硬件支持,唯一的软件依赖恰是使用Lin。
  
  CPI²允许Google收集任何指定指令的预期CPUCPI,从这些数据中分析出标准的资源配置文件,然后使用这些标准的配置文件去帮助网络巨头确定哪些任务比一般情况下耗费了更多的CPI,从而解放与这些任务使用相同CPU的其它进程。
  
  Google称,其绝大多数机器上都运行着多任务。作业的处理类型分为实时处理和批处理两种,同时这些作业由大量的任务组成。Google服务器上96%的任务都会与至少10个的任务组成一个作业,而87%左右的任务会与100或以上的任务组成一个作业。
  
  但是这些任务可能会相互干扰,导致处理器缓存和内存分配问题,造成应用中的某个任务延时飙升——这正是Google不惜一切代价都想避免的问题。
  
  为了实现任务流下每个处理器的控制,Google使用CPI监视所有运行的服务器。通过测量处理器硬件计数器,然后用CPU_CLK_UNHALTED.REF除以INSTRUCTIONS_RETIRED来获得CPI数据。通过计算模式下的perf_event工具,Google每分钟都会收集一个长为10秒周期的数据。系统中总CPU的开销低于0.1%,并且不会对延时产生影响。

[1] [2]

***本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

我要评论

  热门标签

爱秒云
Catfish(鲶鱼) Blog V 4.7.3