【腾讯云原生降本增效大讲堂】Kubernetes资源拓扑感知调度

本文探讨了Kubernetes在云原生环境下如何解决资源竞争和资源感知问题,介绍了Kubernetes的CPU Manager及其局限性。通过扩展调度器实现资源拓扑分配,优化了容器CPUSet管理策略,并在离线混部场景下提出了差异化重调度解决方案,以提高资源利用率和性能。
摘要由CSDN通过智能技术生成

嘉宾 | 方睿

出品 | CSDN云原生

在云原生场景下,为了使CPU利用率更高,以及各容器之间不会由于激烈竞争而引起性能下降,容器的资源分配需要更精细化。

2022年8月11日,中国信通院、腾讯云、FinOps产业标准工作组联合发起的《原动力x云原生正发声 降本增效大讲堂》系列直播活动第6讲上,腾讯星辰算力平台高级工程师方睿分享了Kubernetes资源拓扑感知调度。

资源竞争与资源感知问题

从CPU的体系结构上来看,现代CPU多采用NUMA架构和方式。

NUMA架构是非对称的,每个NUMA node上会有自己的物理CPU内核,以及每个NUMA node之间也共享L3 Cache。同时,内存也分布在每个NUMA node上的。某些开启了超线程的CPU,一个物理CPU内核在操作系统上会呈现两个逻辑的核。

实际上,CPU内核是分布在NUMA node上,NUMA node内本身就有一些亲和性的元素。

右图中,CPU开始的访问速度是不一样的。

如果程序都跑在同一个NUMA node上,可以更好地去共享一些L3 Cache,L3 Cache的访问速度会很快。如果L3 Cache没有命中,可以到内存中读取数据,访存速度会大大降低。

因此,从CPU体系结构中可以看到,如果采用一些错误的CPU分配方式,可能会导致进程访存速度急剧下降,严重影响应用程序的性能。

在这样的体系结构下,存在云计算中常见的吵闹的邻居问题。当多个容器在节点上共同运行时,由于资源分配的不合理,会对CPU本身的性能造成影响。

从理想的使用方式来看,如果每个进程都使用各自的CPU内核,并且不会跨NUMA node访问,相互之间不会有太多争抢。

从糟糕的使用方式来看,如果两个进程的CPU内核在分配时,可能会没有遵循NUMA的亲和性,会带来很大的性

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值