带你读《2022龙蜥社区全景白皮书》——6.1.3 资源混部场景的内核隔离实现方案(下)

简介: 带你读《2022龙蜥社区全景白皮书》——6.1.3 资源混部场景的内核隔离实现方案(下)

《2022龙蜥社区全景白皮书》——06 “龙蜥+”精选方案与案例——6.1 精选典型方案——6.1.3 资源混部场景的内核隔离实现方案(上) https://developer.aliyun.com/article/1229077



混部解决的核心问题:

在保证部署应用的服务等级目标SLO的前提下,充分利用集群中的空闲资源,来提升集群整体的利用率。

(a)在线服务类型应用(延时敏感型,Latency Sensitive) :

容器混合部署时的互相干扰(noisy neighbor)

单机的资源竞应用对资源的敏感程度不同,在资源调度和单机服务质量上都需要精细化的管理策略

资源竞争引发应用响应时间出现抖动毛刺的现象,产生长尾问题(tail latency)

(b)作业类型批处理任务(计算密集型):

分级可靠的资源超卖,满足差异化的资源质量需求

及时识别干扰源,避免影响LS应用


image.png

混部的资源隔离:

在混部中,放在首位的就是资源隔离问题,如果隔离问题没做好,竞争问题没解决,那就很容易引发线上的问题。轻一点,让用户的感官体验变差;重一点,引发线上故障,造成无法服务的恶劣影响。

而解决资源竞争的问题,主要从两个方面出发:

1.调度:通过资源画像的技术,在资源真正发生竞争之前,就预测规划好,尽量减少这种情况发生的可能性。它是主动触发,可以不断优化,但延时较高。

2.内核:在资源真正发生竞争的极端情况下,根据任务的优先级,如何做到既能保障高优先级任务不受影响,又能控制影响到的低优先级任务伤害最低。它是被动触发,保底的必须手段,生效快。

为了满足混部的需求,在服务器单机维度的内核资源隔离技术是最为关键的一项技术。龙蜥云内核(ANCK)在资源隔离的技术上深耕多年,并且在行业中处于领先地位,这些内核资源隔离技术主要涉及内核中的调度、内存和IO这三大子系统,并且在各个子系统领域根据云原生的混部场景进行了深入的改造和优化,关键优化包括但不限于:cpu group identity技术,SMT expeller技术,基于cgroup的内存异步回收技术等。


下图是资源隔离能力在整个混部方案中的位置:


image.png


内核资源隔离技术主要涉及内核中的调度、内存和IO这三大子系统,这些技术基于Linux CGroup V1提供资源的基本隔离划分以及 QoS保障,适用于容器云场景,同时也是大规模化混合部署方案所强依赖的关键技 术。  


除了基本的CPU、内存和IO资源隔离技术外,龙蜥内核还实现有资源隔离视图、资源监控指标SLI(ServiceLevelIndicator)以及资 源竞争分析工具等,提供一整套集监控、告警、运维、诊断等整套的资源隔离和混部解决方案,如下图所示:


image.png


弹性容器场景的调度器优化

如何保证计算服务质量的同时尽可能提高计算资源利用率,是容器调度的经典问题。随着CPU利用率不断 提升,CPU带宽控制器暴 露出弹性不足的问题日趋严重,面对容器的短时间CPU突发需求,带宽控制器需要对容器的CPU使用进行限流,避免影响负载延迟 和吞吐。  


Anolis OS中的CPU Burst技术是一种弹性容器带宽控制技术,在满足平均CPU使用率低于一定限制的条件下,CPU Burst允许短时间 的CPU突发使用,实现服务质量提升和容器负载加速。  

在容器场景中使用CPU Burst之后,测试容器的服务质量显著提升,如下图所示,在实测中可以发现使用该特性技术以后,RT长尾问 题几乎消失。


image.png


总结


龙蜥云内核在资源隔离的关键技术使社区用户有能力在云原生混部场景中根据业务特点设计最优解决方案,可有效提高用户的资源 使用率并最终降低用户资源的使用成本,非常适用于容器云混部场景,同时也是大规模化混合部署方案所强依赖的关键技术。

相关文章
|
算法 Python
请解释Python中的关联规则挖掘以及如何使用Sklearn库实现它。
使用Python的mlxtend库,可以通过Apriori算法进行关联规则挖掘。首先导入TransactionEncoder和apriori等模块,然后准备数据集(如购买行为列表)。对数据集编码并转换后,应用Apriori算法找到频繁项集(设置最小支持度)。最后,生成关联规则并计算置信度(设定最小置信度阈值)。通过调整这些参数可以优化结果。
631 9
|
7月前
|
SQL Java 数据库
Spring事务学习总结
Spring通过`@Transactional`注解实现事务管理,应用于Service层,支持事务的开启、提交与回滚。支持多种事务属性,如回滚规则、传播行为等,常用传播行为为REQUIRED和REQUIRES_NEW,确保数据一致性与业务逻辑隔离。
266 2
|
开发框架 C语言 开发者
STM32寄存器操作、模板构建
【8月更文挑战第23天】本文档介绍STM32中的寄存器操作方法与模板构建技巧。寄存器是STM32控制内外设的核心,通过直接读写特定内存地址来进行操作。以配置GPIO为例,需定位寄存器地址并写入适当值。文档还提供了一个基本的代码模板,包括包含头文件、时钟配置、外设初始化及主函数流程,帮助开发者快速搭建开发框架,并强调了参考手册的重要性以确保正确使用。
607 1
|
缓存 Kubernetes Cloud Native
带你读《2022龙蜥社区全景白皮书》——6.1.3 资源混部场景的内核隔离实现方案(上)
带你读《2022龙蜥社区全景白皮书》——6.1.3 资源混部场景的内核隔离实现方案(上)
438 84
|
XML Java 数据格式
Java一分钟之-JAXB:Java对象到XML绑定
【6月更文挑战第1天】Java Architecture for XML Binding (JAXB) 是Java平台标准,用于自动转换Java对象和XML。它通过注解实现声明式映射,简化XML处理。本文介绍了JAXB的基本使用、常见问题和最佳实践,包括对象到XML(Marshalling)和XML到对象(Unmarshalling)过程,并通过示例展示如何在Java类和XML之间进行转换。注意类型匹配、注解冲突和JAXB上下文创建等问题,以及如何优化性能和避免循环引用。
1124 3
|
存储 消息中间件 Cloud Native
饿了么EMonitor演进史
可观测性作为技术体系的核心环节之一,跟随饿了么技术的飞速发展,不断自我革新。
8319 110
饿了么EMonitor演进史
|
Cloud Native Linux 数据中心
龙蜥白皮书精选:云原生混部资源隔离技术
不论是源码透明度,还是技术深度,以及场景的广度,龙蜥在资源隔离技术都是用户第一选择。
|
算法 机器人 Java
常用的启发式算法
常用的启发式算法
1590 0
|
存储 缓存 算法
十九、Linux性能优化实战学习笔记- 为什么系统的Swap变高了?
十九、Linux性能优化实战学习笔记- 为什么系统的Swap变高了?
383 0
十九、Linux性能优化实战学习笔记- 为什么系统的Swap变高了?