(注:离在线混部计划另文阐述) 图 1 混部示意图 在离线混部的成本价值 为了更形象的了解在离线混部的成本价值,我们来看一个中小型企业,4 核 8G 的机器一共有 1000 台,主要计算资源就是 针对在线服务,需要尽量保证其服务在流量高峰时期与混部之前的指标波动控制在 5% 之内; 针对离线作业,不能因为优先级不如在线服务,就一直处于饥饿或者频繁驱逐状态,影响离线作业总的运行时间和 SLA。 以下是美团某部门精细化成本运营后的分解图: 图 2 成本指标分解图 业界在离线混部方案解析 方案拆分 通过对目前业界在离线方案方案的分析,我们可以抽象出在离线混部方案的三个划分维度: 从在离线混部的隔离类型上 如果服务是混部于同一台物理机上,属于共享内核;如分属于不同物理机,则属于独占内核。 从在离线混部的部署底座上,可以分为物理机部署和容器部署。 从在离线混部的调度决策上,可以分为静态决策和动态决策。 结合业界绝大多数企业的实际场景,我们推出了一套一站式在离线混部方案,由算力调度引擎 BridgX 和智能运维引擎 CudgX 两个核心组件构成,如下图所示: 图 5 一种开源高可用在离线混部方案架构图
本篇文章结合腾讯技术团队在混部方面的落地和实战经验,来介绍各类场景下在线离线混部的相关概念、面临的问题及混部技术方案,抛砖引玉,供大家交流。 图2 混部的场景 业内研究 在线离线混部对于提高集群利用率是非常有意义的,无论是在学术界,还是各大厂商实际落地,都对混部做了深入的研究。 ;3)对应用有依赖性,比如需要依赖应用是无状态的,可以被自动迁移等;4)不能很好保证应用服务质量,做不到安全混部;5)混部的场景有限。 (5) 存算分离:通过Ceph或CBS分布式存储技术,解决离线作业需要大量存储空间及磁盘IO问题。 图5 Batch scheduler 5、预测 预测兼容两种模式:远程预测和本地预测 (1)远程预测。
在今年 9 月份的 QCon 全球软件开发大会(北京站),贝联珠贯 (www.lccomputing.com) 合伙人王元良老师以《增强型 RunC 的最佳实践:克服离线高压力混部场景的关键挑战》为题, 接入客户系统 一级告警,LCC-Agent 通知 NM,NM 会调整心跳时间,心跳时间从 3s 变为 5min 二级告警,LCC-Agent 通知 NM NM 会调整心跳时间 NM 会根据任务的优先级 ,优先 KILL 低优先级任务 三级告警,LCC-Agent 直接 kill 非白名单进程 机器夯死问题得到解决,混部解决掉最关键的资源卡点问题,稳定性问题收敛,未再出现此类问题 实施效果 在产品上线前 集群维度感知,先于业务发现问题 前期为了了解客户混部集群中的各种资源问题状态,我们采用手动脚本单台机器日志并聚类的方式来拿到结果;这种方式耗时长 (两周一次)、只能分析问题大类、没法观察问题走势和分布等 混部后单机压力与复杂度指数级上升,需要高频全视角的分析问题,这种方式不再适用。需要一套能分钟级展示、多视角、自动聚类分析的手段,包括时间对比、子系统分布、问题大类、问题子类、业务角度等。
相关笔记:谷歌Borg论文阅读笔记(一)—— 集群操作系统 Google的混部情况 Google几乎所有的机器都是混部的,在一台机器上,可能运行着不同jobs的tasks。 这里主要讲的是Google对任务混部对CPU性能影响的研究。 Google为了评估不同任务部署到同一个机器的CPU干扰影响做了一个实验。 资源分类 混部的一大问题是某个资源不足的情形。但是,不同的资源有不同的特点,有的资源能快速调整,而有的则需要很大的代价来调整。 在Google中,只有5%的LS task禁止使用资源超过限制值,大概是为了获得更好的可预测性。只有少于1%的批处理tasks这么做(禁止资源使用超过限制值)。 总结 应用混部,尽可能使用多线程。 使用轻量级的隔离机制,而不是VM。 合理的对资源超分配,以此提高资源利用率。很多任务并不是任何时刻都会用到很多资源。 对任务和资源进行分级。
由于 Local 模式下 Proxy 和 Broker 是同进程部署,Proxy本身无状态,因此主要的集群配置仍然以 Broker 为基础进行即可。
导语 混部,通常指在离线混部(也有离在线混部之说),意指通过将在线业务(通常为延迟敏感型高优先级任务)和离线任务(通常为 CPU 消耗型低优先级任务)同时混合部署在同一个节点上,以期提升节点的资源利用率 混部(混合部署)因此应运而生。这里的“混”,本质上就是“区分优先级”。狭义上,可以简单的理解为“在线+离线”(在离线)混部,广义上,可以扩展到更广的应用范围:多优先级业务混合部署。 Upstream kernel隔离效果 Linux 内核调度器默认提供了5个调度类,实际业务能用的基本上只有两种: CFS 实时调度器(rt/deadline) 混部场景中,CPU 隔离的本质在于需要: 超线程干扰问题是混部场景中的关键问题,而 CFS 在最初设计时是(几乎)完全没有考虑过的,不能说是设计缺失,只能说是 CFS 并不是为混部场景而设计的,而是为更通用的、更宏观的场景而生。 不太适合(云原生)混部场景。 本质还是:Core scheduling 亦非为云原生混部场景而设计。 结论 综合前面的分析,可以抽象的总结下当前现有的各种方案的优点和问题。
对此,业内一直在进行诸多探索,在线离线混部被认为是解决该问题的终极方案。 .大部分混部系统只针对云原生场景,无法利用大量非容器化的在线空闲资源; 2. 缺乏比较好的干扰检测机制,导致在线服务质量无法很好保证,限制了可以混部的场景; 5. 在内核层、容器层缺乏完善的资源隔离、热迁移等机制,导致容易发生干扰,且处理干扰代价高; 6. 混部调度器缺乏在离线应用调度的兼容性、高性能以及SLA保证。 解决这些问题,也是Caelus混部研发的初衷。 充分兼容的架构设计 Caelus为了适应各种的混部场景,遵循了几个关键原则,主要包括: 1. 不改变业务使用方式,便于业务迁移到Caelus混部平台。
对此,业内一直在进行诸多探索,在线离线混部被认为是解决该问题的终极方案。 由于很多大数据任务具有实时性要求不高、运行时间较短、使用碎片资源等特点,而在线应用的资源使用通常具有潮汐的特点,因此大数据任务比较适合复用在线应用的空闲资源,但混部也面临诸多核心技术难题,具体包括: 大部分混部系统只针对云原生场景 ,限制了可以混部的场景; 在内核层、容器层缺乏完善的资源隔离、热迁移等机制,导致容易发生干扰,且处理干扰代价高; 混部调度器缺乏在离线应用调度的兼容性、高性能以及SLA保证。 解决这些问题,也是Caelus混部研发的初衷。 充分兼容的架构设计 Caelus Caelus为了适应各种的混部场景,遵循了几个关键原则,主要包括: 不改变业务使用方式,便于业务迁移到Caelus混部平台。
针对上述难题,业界公认的解决方式是 “在离线混部”技术(如 Koordinator,Caelus,Katalyst,Crane)。 但混部并非“银弹”,当企业将混部能力从单个集群扩展到全局多个集群时,资源仍然被物理集群边界锁死。 方案默认集成了多集群资源管理、Crane 扩展调度 、混部隔离保障的 RUE 内核以及超大规模集群管控功能,全面降低用户在跨集群管理、资源调度和在离线混部上的维护复杂度。 团队设计了 Hyper Master 方案利用腾讯云分布式数据库实现 etcd 协议兼容层,突破了原生 etcd 在大规模场景下的性能瓶颈,单集群可支撑 5万+节点的稳定运行,将控制面吞吐量提升10倍以上 全局视图统一管理混部资源:通过穿透集群边界将分散在各个集群的闲置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%以上,并分享实战中沉淀的关键技术与踩坑经验。 解法:基于历史时序预测的弹性资源窗 (Elastic Window)指标采集: 实时收集在线业务Pod的CPU/US、内存RSS、网络PPS预测模型: 按5min粒度,使用加权移动平均(WMA)预测未来 四、稳定性守卫:多维熔断与逃生机制混部的最大风险在于资源争抢导致在线业务抖动。 五、效果验证:从理论到生产的数据飞跃在日均百亿请求的电商核心集群落地混部方案:指标 混部前 混部后 提升幅度集群CPU利用率 22% 68% 混部方案需结合业务特性深度调优,不可直接复制参数。
YOLOv5是一种目标检测算法,它是YOLO(You Only Look Once)系列算法的最新版本。与其它目标检测算法相比,YOLOv5在速度和准确性方面取得了显著的提升。 测试环境: 虚拟机环境ubuntu18.04 python3.6.9 yolov5部署ROS详细视频参看: yolov5-7.0部署在ros机器人操作系统视频演示_哔哩哔哩_bilibili这个是使用最新版本 yolov5-7.0部署在ROS机器人操作系统演示,演示环境是虚拟机环境ubuntu18.04,调用笔记本摄像头进行演示。 ,yolov7部署在ros机器人操作系统视频演示,yolov8部署在ros机器人操作系统视频演示,基于yolov8+bytetrack实现目标追踪视频演示,用C#部署yolov8的tensorrt模型进行目标检测 用opencv和onnxruntime去部署yolov5-7-8,yolov5+bytetrack+pyqt5实现目标追踪 https://www.bilibili.com/video/BV1ZG411d7c3
本文结合华为云云原生团队在混合部署方面的研究和实战,介绍了混合部署的背景、概念、混部技术的设计方案和实际落地情况,以及对未来的计划和展望。 基于Volcano混合部署解决方案如下图所示: 图 3 基于Volcano混合部署架构 02 Volcano混部调度能力 目前Kubernetes的默认调度器是以Pod为单位进行调度的,不区分Pod中运行的业务类型 因此无法满足混部场景对资源分配的特殊要求。 资源超卖及在离线作业混部必然会导致不同作业之间的相互干扰,因此除了通过cgroup进行资源隔离之外,kubelet同时会实时采集节点上物理资源使用率,根据不同的情况驱逐离线作业,提前释放相应资源,防止对在线作业的 王康瑾,贾统,李影.在离线混部作业调度与资源管理技术研究综述.软件学报,2020,31(10):3100-3119 [6] Interference-Aware Scheduling for Inference
本文是《CDH5部署三部曲》的终篇,前面两章完成了CDH5集群的部署和启动,本章将实战中遇到的问题做个总结,如果碰巧您也遇到过这些问题,希望本文能给您一些参考; 系列文章链接 《CDH5部署三部曲之一: 准备工作》 《CDH5部署三部曲之二:部署和设置》 《CDH5部署三部曲之三:问题总结》 启动集群服务报错 首次启动集群服务报错,如下图: ? 以上就是本次实战过程中遇到的所有问题和解决方法,至此《CDH5部署三部曲》全部完成,如果您正在部署CDH,希望此系列文章能给您一些参考。
5.x版本也支持Broker和Proxy分离部署以实现更灵活的集群能力,详见部署教程。 【参考】 RocketMQ5.x单机部署 Rocketmq 5.x 开启proxy导致8080/8081端口冲突 Rocketmq 5.x Java 客户端 rocketmq5.x创建topic
An Introduction to Redis-ML (Part 5) 原文作者:Tague Griffith 原文地址:https://dzone.com/articles/an-introduction-to-redis-ml-part-five-redis-labs 译者微博:@从流域到海域 译者博客:blog.csdn.net/solo95 Redis-ML简介(第5部分) 在阅读之前,请务必查看 第1部分,第2部分,第3部分和第4部分! 调查这些异常值中的一部分会引出这个命运的旅程中引人入胜的故事。有很多在线资源讲述泰坦尼克号乘客和机组人员的故事,向我们展示了数据背后的人们。我鼓励你去调查一些错误分类的人,然后了解他们的故事。
本文是《CDH5部署三部曲》的第二篇,上一篇《CDH5部署三部曲之一:准备工作》将集群所有机器做了必要的设置,今天一起来完成CDH的部署、启动、设置等操作; 系列文章链接 《CDH5部署三部曲之一:准备工作 》 《CDH5部署三部曲之二:部署和设置》 《CDH5部署三部曲之三:问题总结》 master机器上的设置 SSH登录master机器,执行以下操作: 安装mariadb: yum install mariadb-server 至此,CDH5部署和启动都已完成,但实际的启动过程并非一帆风顺,HDFS、Hive等服务都可能启动失败,下一篇文章会将这些问题以及解决方法都列出来;
系列介绍 《CDH5部署三部曲》共三篇文章,对CDH5.7.2版本的准备、部署、启动、设置等环节进行实战,内容如下: 第一篇:《准备工作》,即CDH集群中每一台机器都要做的操作; 第二篇:《部署和设置 》,本章完成CDH集群部署和启动; 第三篇:《问题总结》,列出实战中遇到的问题及解决办法; 系列文章链接 《CDH5部署三部曲之一:准备工作》 《CDH5部署三部曲之二:部署和设置》 《CDH5部署三部曲之三 192.168.133.153 双核8G内存 任务节点 worker2 192.168.133.154 双核16G内存 任务节点 文件下载 cm下载地址:http://archive.cloudera.com/cm5/ cm/5/ ,找到自己需要的cm包下载,本次实战用的是cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz,如下图红框: ? parcel下载地址:http://archive.cloudera.com/cdh5/parcels ,本次实战用到的是CDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcel,请下载下图红框中的三个文件