字节跳动云原生混部实践开源项目 Katalyst v0.2.0 发布

技术

来源 | Katalyst 社区

K atalyst 从 MVP (v0.1.0) 版本到现在经过若干迭代,目前已经完成若干核心能力的输出,Katalyst 将基于当前的实现正式发布 v0.2.0 版本。

Katalyst v0.2.0 包括如下一些核心的功能:

核心功能一

KCNR API 定义扩展非 socket/numa 维度的亲和性表达能力,支持表达更丰富的硬件级别亲和关系

  • 未来典型应 用场 景 包括 AMD CCX 级别的 CPU Core 亲和

核心功能二

新增 CPU Enhancement: 支持 shared_cores 根据业务场景进行 cpuset 分池; 相同 cpuset 池中的 shared_cores 服务共享 CPU 调度域,不同 cpuset 池中的 shared_cores 服务隔离 CPU 调度域

核心功能三

新增 Memory Enhancement: 支持 NUMA-Binding 和 NUMA-Execlusive,满足业务极致性能要求

  • NUMA-Binding: 配合 dedicated_cores 实现 NUMA 的绑定 (可以不独占,多个实例贡献 NUMA)

核心功能四

新增 Network Enhancement: 支持网络资源的 QoS 管理

  • 网卡亲和分配: 配合 NUMA-Binding 分配与 NUMA 亲和的网卡,减少跨 NUMA 网络流量对性能的影响; 并适配多张网卡配置在不同 network namespace
  • 流量分级管理: 支持 QoS 级别和 Pod 级别的流量打标,实现高优业务对低优业务网络流量上的压制; 并同时兼容 cgroup v1/v2 的接口

核心功能五

混部能力增强:

  • 并池隔离: 基于历史资源预估的策略,实现 dedicated_cores (with numa-execlusive enhancement) + reclaimed_cores + shared_cores 的并池混部能力
  • 资源超卖: 实现基于资源运营目标的超卖策略,引入更多 reclaimed 作业将利用率维持在目标值
  • 混部兜底: 对于内存超卖的服务,控制 RSS 实际使用量相对内存申请量的比例,避 免出现内存挤兑对服务造成影响

核心功能六

SLO 配置管理:基于 SPD (Service Profiling Descriptor) 实现单机管控对于服务画像能力的接入

核心功能七

其他核心功能

  • 单机组件支持 healthz 框架对接 readiness check 暴露健康状态,增强稳定性和服务健康检测能力
  • 修复 gRPC Server 异常导致的 Memory Leak 问题
  • END -

关于 Katalyst

Katalyst 是字节跳动对多年大规模业务云原生化场景中资源管理能力的抽象和总结,我们期望通过 Katalyst 的开源直接或间接的帮助用户做好资源管理,实现降本增效。

项目地址 | github.com/kubewharf/katalyst-core

29
0
0
0
关于作者
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论