带你读《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


总结


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

相关文章
|
负载均衡 网络协议 算法
slb监听协议与端口
SLB是云服务商提供的负载均衡服务,用于分发客户端请求到多台后端服务器,提升服务可用性和响应速度。关键概念包括监听协议(TCP、UDP、HTTP、HTTPS、TCPSSL)和监听端口。监听协议决定了SLB处理请求的方式,而监听端口则是SLB接收请求的入口。配置时需根据应用选择合适协议和端口,并可设置负载均衡算法(如轮询、最少连接等)。客户端应通过SLB统一入口访问后端服务,避免绕过SLB导致的问题。
1770 2
|
Shell Linux
Linux Shell 进阶:探索高级命令和脚本编程技巧
Linux Shell不仅仅是一个命令解释器,它还提供了许多强大的高级命令和脚本编程技巧,能够帮助用户更高效地管理系统和处理数据。在这篇文章中,我们将深入探讨Linux Shell的高级功能。
643 0
|
开发框架 Java 开发者
processing完整教程
本文提供了一个关于Processing的完整教程,包括下载、启动Processing、基本编程示例、颜色使用以及如何打印调试信息,适合初学者快速上手Processing编程。
2207 2
|
缓存 Kubernetes Cloud Native
带你读《2022龙蜥社区全景白皮书》——6.1.3 资源混部场景的内核隔离实现方案(上)
带你读《2022龙蜥社区全景白皮书》——6.1.3 资源混部场景的内核隔离实现方案(上)
386 77
|
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上下文创建等问题,以及如何优化性能和避免循环引用。
951 3
|
Ubuntu Linux 网络安全
/var/log/auth.log日志详解
`/var/log/auth.log`是Linux(尤其是Debian系如Ubuntu)记录身份验证和授权事件的日志文件,包括登录尝试(成功或失败)、SSH活动、sudo使用和PAM模块的操作。登录失败、SSH连接、sudo命令及其它认证活动都会在此记录。查看此日志通常需root权限,可使用`tail`、`less`或`grep`命令。文件内容可能因发行版和配置而异。例如,`sudo tail /var/log/auth.log`显示最后几行,`sudo grep "failed password" /var/log/auth.log`搜索失败密码尝试。
2461 8
|
Cloud Native Linux 数据中心
龙蜥白皮书精选:云原生混部资源隔离技术
不论是源码透明度,还是技术深度,以及场景的广度,龙蜥在资源隔离技术都是用户第一选择。
|
存储 算法 安全
深度解析JVM世界:JVM内存分配
深度解析JVM世界:JVM内存分配
|
缓存 监控 Cloud Native
阿里大规模业务混部下的全链路资源隔离技术演进
本文作为混部实践系列开篇,本篇文章将介绍资源隔离技术在混部中的重要性、其落地挑战及我们的应对思路。
阿里大规模业务混部下的全链路资源隔离技术演进

热门文章

最新文章