数据中心的资源利用一直是个关键问题,像微博这样的大平台,在线作业性能保障情况下,空闲资源分给离线作业是提升资源利用率的好办法,但实际操作中挑战重重,这很值得探讨。
在线离线的资源状况
微博业务规模庞大,在线业务平时资源平均利用率不高,很多资源处于闲置状态。然而离线业务资源不够用,严重影响工作效率。在线业务闲置资源,没有高效地发挥价值,这就导致数据中心整体资源浪费,而离线业务那些亟待资源的地方只能干等着。在不同时段内这种矛盾更为突出,如高峰时段,在线业务虽占用资源,但可能仍有部分资源空闲,离线业务却无资源可用。
在企业运作成本方面来看,一方面资源闲置,一方面资源不足,无疑增加了企业的运营成本,导致资金和资源的双重浪费。这并非微博一家的问题,许多类似的企业都面临这种状况。
英特尔技术助力
英特尔至强可扩展处理器集成的英特尔®资源调配技术和英特尔®Speed Select技术在这里就派上了用场。以微博基于Kubernetes和HadoopYARN构建的在离线混部方案为例,这两种技术发挥了巨大的作用。英特尔®资源调配技术可以让应用使用共享资源的方式有更好的可见性和可控性,例如对最后一级缓存和内存带宽的资源管理。
英特尔®Speed Select技术则在对CPU性能的细粒度控制和缓存调度功能上表现突出,能够更好地实现分时共享或者抢占式调度。这些功能大大提升了CPU的利用率,还能保证大规模业务服务顺利落地,微博这种大型平台的业务开展就受益于此。
并发执行与资源调度
通过多个进程并发执行提高CPU利用率这种方式具有可行性。这样可以进一步挖掘CPU的潜力,而且在调度过程中,基于CPU更细粒度的资源调度和资源管理能力,在减少在离线作业相互干扰方面有着积极作用。实际过程中,众多的在线作业和离线作业同时存在,若没有这种细粒度的控制和调度,很容易出现混乱。
例如在企业日常业务运营中,没有合理调度可能导致在线业务出现卡顿,离线业务长时间无法完成甚至出错。合理的调度能保证在线业务质量,让用户体验良好,也能加速离线业务运行,提高数据中心整体的作业效率,从而带动相关业务更快发展。
硬件级别的抗干扰机制
英特尔至强可扩展处理器作为重要的计算资源,提供了硬件级别的细粒度抗干扰机制。不同的资源调度机制赋予作业运行时不同的抗干扰性。在数据中心里,多种作业同时运行时,干扰容易出现。例如在线业务运行时可能影响离线业务的资源获取。
这种硬件级别的机制可以避免这种情况,保证不同作业间相对独立运行,尤其在一些对稳定性要求高的业务场景,如微博的部分核心数据处理业务,这一机制确保业务稳定进行,不被其他作业干扰,提供了更可靠的数据处理环境。
检测冲突与资源隔离
基于英特尔RDT、CPUQoS以及相关的隔离、调度等技术,可以实现对缓存空间、内存带宽等的细粒度管理。数据中心里不同业务对这些资源都有需求,一旦管理不善容易出现冲突,影响业务进程。
例如在高峰时期可能会频繁出现资源争用情况。这些技术能够更好地检测冲突,还能实现资源的有效隔离。并且根据业务的具体需求分配真实的CPU资源,避免资源分配不合理的情况,使各类业务能够按照其需求获取资源,避免出现资源的混乱分配。
资源争用中的优先级
在面临资源争用的时候,要考虑业务的优先级。英特尔CAT技术就有用武之地了。它支持软件引导的缓存容量重新分配,使得重要的数据中心的容器、VM或应用程序能够从提升缓存容量和减少缓存争用中获益。
例如对于像虚拟交换机或者数据包处理应用程序这种优先级高的工作负载,在资源争用的时候可以先满足需求。这能确保一些关键业务不受影响,整体提升数据中心对不同业务的应对能力,让重要业务正常运行从而带动其他业务发展。
你觉得这种利用英特尔技术提升数据中心在离线混部资源利用率的方式会广泛普及吗?希望大家点赞、分享并评论。