但在线服务大都具有明显的潮汐特征,导致大部分时间段资源利用率都很低(10% 以下)从而造成浪费。 (注:离在线混部计划另文阐述) 图 1 混部示意图 在离线混部的成本价值 为了更形象的了解在离线混部的成本价值,我们来看一个中小型企业,4 核 8G 的机器一共有 1000 台,主要计算资源就是 假设平均每台机器的资源使用率是 10%,那么实际使用的计算资源是 4000*10% = 400 核,8000*10% = 800G。 由此可见,在离线混部的成本价值是清晰可计算且收益巨大的。 业界实践来看,谷歌利用混部技术将资源利用率从 10% 提升到 60%,每年节省上亿美金。 如果服务是混部于同一台物理机上,属于共享内核;如分属于不同物理机,则属于独占内核。 从在离线混部的部署底座上,可以分为物理机部署和容器部署。 从在离线混部的调度决策上,可以分为静态决策和动态决策。
本篇文章结合腾讯技术团队在混部方面的落地和实战经验,来介绍各类场景下在线离线混部的相关概念、面临的问题及混部技术方案,抛砖引玉,供大家交流。 在线离线混部可以把这些空闲资源充分利用起来,降低集群成本。若集群总共有500w核,通过混部提高10%的利用率,就可以节约50w核,还是很可观的。 图2 混部的场景 业内研究 在线离线混部对于提高集群利用率是非常有意义的,无论是在学术界,还是各大厂商实际落地,都对混部做了深入的研究。 10、远程存储支持 为解决离线作业需要大量磁盘空间,而混部机器磁盘空间不足问题,引入Ceph支持,公有云可引入CBS支持。通过额外存储支持,还可以减少与在线业务的本地IO冲突。 效果 目前Caelus上线了几个场景,如图9所示,某在线应用集群的使用率一直维持在10%,通过混部hadoop类离线作业,大约提高了60%的cpu使用率。 ?
在今年 9 月份的 QCon 全球软件开发大会(北京站),贝联珠贯 (www.lccomputing.com) 合伙人王元良老师以《增强型 RunC 的最佳实践:克服离线高压力混部场景的关键挑战》为题, 我们观察到,目前不少公司存在着线下集群利用率不高的问题,在线集群小于 10%,离线集群 40% ~ 60% 左右,提升利用率的空间还很大。 二级告警,LCC-Agent 通知 NM NM 会调整心跳时间 NM 会根据任务的优先级,优先 KILL 低优先级任务 三级告警,LCC-Agent 直接 kill 非白名单进程 机器夯死问题得到解决,混部解决掉最关键的资源卡点问题 集群维度感知,先于业务发现问题 前期为了了解客户混部集群中的各种资源问题状态,我们采用手动脚本单台机器日志并聚类的方式来拿到结果;这种方式耗时长 (两周一次)、只能分析问题大类、没法观察问题走势和分布等 混部后单机压力与复杂度指数级上升,需要高频全视角的分析问题,这种方式不再适用。需要一套能分钟级展示、多视角、自动聚类分析的手段,包括时间对比、子系统分布、问题大类、问题子类、业务角度等。
相关笔记:谷歌Borg论文阅读笔记(一)—— 集群操作系统 Google的混部情况 Google几乎所有的机器都是混部的,在一台机器上,可能运行着不同jobs的tasks。 这里主要讲的是Google对任务混部对CPU性能影响的研究。 Google为了评估不同任务部署到同一个机器的CPU干扰影响做了一个实验。 增加10%的CPU利用率会增加2%的CPI。 这是CPU密集型的程序测量的结果,事实上干扰存在于各种资源。 相对而言,专用的cells的CPI要低于混用的cells。 资源分类 混部的一大问题是某个资源不足的情形。但是,不同的资源有不同的特点,有的资源能快速调整,而有的则需要很大的代价来调整。 但即使如此,10%的LS tasks重写了这个(允许内存使用超过限制值)。79%的批处理任务这么做,因为这是MapReduce框架的默认设置。 总结 应用混部,尽可能使用多线程。
实验设计非常简单 就是10个ESRD病人,10个正常人志愿者的血液,提取PBMC进行10X仪器的单细胞转录组数据而已。 值得注意的是,其中研究团队就做了两个10X哦,也就是说他们把 10个ESRD病人混合成为一个样品,10个正常人志愿者也混合成为一个样品。 下面的流程图写的很清楚具体细胞数量,平均检测到的基因数量是1000,每个样品检测到1万个左右的细胞数量,都符合10X仪器的技术水平。 ? 不过,反正就2个10X样品,成本也很低,无所谓啦! 然后研究者单独看某一群细胞继续细分 因为本研究设计非常简单,就一个变量,就是10 healthy volunteers and 10 patients with ESRD ,所以主要的分析都是围绕这个变量来进行
导语 混部,通常指在离线混部(也有离在线混部之说),意指通过将在线业务(通常为延迟敏感型高优先级任务)和离线任务(通常为 CPU 消耗型低优先级任务)同时混合部署在同一个节点上,以期提升节点的资源利用率 混部(混合部署)因此应运而生。这里的“混”,本质上就是“区分优先级”。狭义上,可以简单的理解为“在线+离线”(在离线)混部,广义上,可以扩展到更广的应用范围:多优先级业务混合部署。 ,可以持续运行10ms的时间,也就意味着在线任务的调度延迟(RR切换延迟)可能达10ms。 超线程干扰问题是混部场景中的关键问题,而 CFS 在最初设计时是(几乎)完全没有考虑过的,不能说是设计缺失,只能说是 CFS 并不是为混部场景而设计的,而是为更通用的、更宏观的场景而生。 不太适合(云原生)混部场景。 本质还是:Core scheduling 亦非为云原生混部场景而设计。 结论 综合前面的分析,可以抽象的总结下当前现有的各种方案的优点和问题。
对此,业内一直在进行诸多探索,在线离线混部被认为是解决该问题的终极方案。 .大部分混部系统只针对云原生场景,无法利用大量非容器化的在线空闲资源; 2. 混部调度器缺乏在离线应用调度的兼容性、高性能以及SLA保证。 解决这些问题,也是Caelus混部研发的初衷。 充分兼容的架构设计 Caelus为了适应各种的混部场景,遵循了几个关键原则,主要包括: 1. 不改变业务使用方式,便于业务迁移到Caelus混部平台。 另外,很多大数据场景下,大规模集群、大量短作业都对调度器的调度吞吐提出了很高的挑战,特别是云原生大数据,更是缺乏这种能力,因此,Caelus实现了自研的高性能调度器,是原生K8S调度器的10倍调度吞吐。
对此,业内一直在进行诸多探索,在线离线混部被认为是解决该问题的终极方案。 ,限制了可以混部的场景; 在内核层、容器层缺乏完善的资源隔离、热迁移等机制,导致容易发生干扰,且处理干扰代价高; 混部调度器缺乏在离线应用调度的兼容性、高性能以及SLA保证。 解决这些问题,也是Caelus混部研发的初衷。 充分兼容的架构设计 Caelus Caelus为了适应各种的混部场景,遵循了几个关键原则,主要包括: 不改变业务使用方式,便于业务迁移到Caelus混部平台。 另外,很多大数据场景下,大规模集群、大量短作业都对调度器的调度吞吐提出了很高的挑战,特别是云原生大数据,更是缺乏这种能力,因此,Caelus实现了自研的高性能调度器,是原生K8S调度器的10倍调度吞吐。
针对上述难题,业界公认的解决方式是 “在离线混部”技术(如 Koordinator,Caelus,Katalyst,Crane)。 但混部并非“银弹”,当企业将混部能力从单个集群扩展到全局多个集群时,资源仍然被物理集群边界锁死。 2 新一代资源管理范式,算力集群 算力集群是 TKE 面向跨集群资源混部场景推出的首个全栈式产品化解决方案,旨在充分挖掘集群中的闲置算力,让资源成本迈向全局最优。 方案默认集成了多集群资源管理、Crane 扩展调度 、混部隔离保障的 RUE 内核以及超大规模集群管控功能,全面降低用户在跨集群管理、资源调度和在离线混部上的维护复杂度。 全局视图统一管理混部资源:通过穿透集群边界将分散在各个集群的闲置CPU、GPU节点资源抽象为虚拟节点(vNode),在上层形成全局算力池统筹管理闲置资源。
徐蓓,腾讯云容器技术专家,腾讯云异构计算容器负责人,多年云计算一线架构设计与研发经验,长期深耕 Kubernetes、在离线混部与 GPU 容器化领域,Kubernetes KEP Memory QoS 除此之外,腾讯云 qGPU 创新性的将在离线混合部署技术与 GPU 相结合,在业界首次实现了 GPU 在离线混部的方案,将 GPU 容器共享技术推进到了下一个纪元。 在线业务通常指推理业务,离线业务可能是推理、也可能是训练,于是在离线混部主要形式有 推理 + 推理、推理 + 训练。 在具备 qGPU 在离线混部能力之后,用户可以安全地将在线业务与其他业务部署在同一张 GPU 卡,在共享复用资源的同时,可以完全保障在线业务健康、稳定运行。 可以说,腾讯云 qGPU 在离线混部是提升 GPU 利用率的创新性的突破技术。
2023 年 1 月 9 日云原生产业联盟(CNIA)举办 2022 年度线上年会,中国信通院云大所云计算发布了云原生系列测评成果,腾讯云主导开源的云原生成本优化项目 Crane 首批通过“云原生混部” 腾讯云自 2015 年起在混部领域进行探索,在支撑海量自研业务上云的过程中广泛使用。目前管理规模已达数千万核,混部能力使服务器资源利用率从30% 提升至 65%。 云原生混部解决方案依托容器、微服务、平台编排调度等云原生技术,帮助用户将业务负载与大数据分析、人工智能计算等不同优先级的应用混合部署到共享的基础设施上,提高资源利用率,实现“降本增效”。 在此背景下,中国信通院牵头,联合腾讯云等多家云服务商,经过多轮研讨,形成了《云原生混部技术能力要求》标准。 标准涉及基础设施能力要求、平台混部能力要求、业务应用能力要求,以及混部效果评价四个部分,从资源隔离、资源复用、干扰检测、负载反馈、任务调度、资源预测、应用服务质量等不同维度,对混部产品及解决方案进行全面评估
作者徐蓓,腾讯云专家工程师,长期从事云计算 IaaS、PaaS 架构和研发工作,现负责腾讯云 TKE 资源调度、离在线混部、大数据云原生化等领域。 Google Borg 是资源调度管理和离在线混部领域的鼻祖,同时也是 Kubernetes 的起源与参照,已成为从业人员首要学习的典范。 Isolation 由于 Google Borg 天生就考虑混部场景,所以资源隔离对其尤为重要。 Google Borg 作为 Google 内部的经验结晶,系统的阐述了混部应有的基本形态,很有启发意义。 后续会持续分享混部相关的理论和实战经验。
本文将深入剖析腾讯云团队如何借助Serverless容器技术与深度混部策略,在保障核心业务SLA的前提下,将生产集群利用率稳定提升至65%以上,并分享实战中沉淀的关键技术与踩坑经验。 三、实战精要:混部架构设计与核心策略目标: 在共享资源池内同时部署延迟敏感型在线服务(如API、Web)与资源消耗型离线作业(如Spark、Flink、AI训练),互不干扰。 四、稳定性守卫:多维熔断与逃生机制混部的最大风险在于资源争抢导致在线业务抖动。 五、效果验证:从理论到生产的数据飞跃在日均百亿请求的电商核心集群落地混部方案:指标 混部前 混部后 提升幅度集群CPU利用率 22% 68% 混部方案需结合业务特性深度调优,不可直接复制参数。
本文结合华为云云原生团队在混合部署方面的研究和实战,介绍了混合部署的背景、概念、混部技术的设计方案和实际落地情况,以及对未来的计划和展望。 基于Volcano混合部署解决方案如下图所示: 图 3 基于Volcano混合部署架构 02 Volcano混部调度能力 目前Kubernetes的默认调度器是以Pod为单位进行调度的,不区分Pod中运行的业务类型 因此无法满足混部场景对资源分配的特殊要求。 资源超卖及在离线作业混部必然会导致不同作业之间的相互干扰,因此除了通过cgroup进行资源隔离之外,kubelet同时会实时采集节点上物理资源使用率,根据不同的情况驱逐离线作业,提前释放相应资源,防止对在线作业的 htm [4] 中国数据中心行业研究报告2020年: https://pdf.dfcfw.com/pdf/H3_AP202012161440695500_1.pdf [5] 王康瑾,贾统,李影.在离线混部作业调度与资源管理技术研究综述
网上找了视频,LeetCode 30 天挑战,用c语言写,记录一下,一共30个leetcode 算法题 对应30天,大概需要写10篇,每篇3道题,手打下代码,外加记录一下。
网上找了视频,LeetCode 30 天挑战,用c语言写,记录一下,一共30个leetcode 算法题 对应30天,大概需要写10篇,每篇3道题,手打下代码,外加记录一下。 图片 //实际动手写确实不一样,包括两部分,第一部分是求平方和,第二部分是while判断,把已经算过的数存入数组, //完成空间换取时间 int sum_of_squares(int val) { int q,r,result=0; do { q=val/10; r=val%10; result+=r*r; val=q ; } while(q>=10); result+=q*q; return result; } bool isHappy(int n){ bool } 图片 //平方和的代码也可以优化一下 int sum_of_squares(int val) { int q,r,result=0; do { q=val/10
[(none)]> flush privileges; # 删除 /etc/my.cnf 中的 skip-grant tables # 重启数据库服务 # 再次登录 mysql 就正常了 麒麟v10
网上找了视频,LeetCode 30 天挑战,用c语言写,记录一下,一共30个leetcode 算法题 对应30天,大概需要写10篇,每篇3道题,手打下代码,外加记录一下。
腾讯大数据,基于多年在混部技术积累的实践经验与基于 Kubernetes 的全场景在线离线混部解决方案,对 K8s 零入侵,兼容各种场景(容器化、非容器化等),已经在腾讯内部业务多方落地,节约了上亿成本 揭秘有状态服务上 Kubernetes 的核心技术 6月直播专场来了|腾讯基于 K8s 的全场景在离线混部技术实践 Dapr | 云原生的抽象与实现 用 edgeadm 一键安装边缘 K8s 集群和原生