最新要闻
- 油价小幅下调 加一箱油将少花2元 全球最资讯
- 中海达(300177)6月13日主力资金净买入525.51万元_天天通讯
- PMR机械硬盘走到尽头了!西数/希捷正疯狂自救
- 6旬老人守株待兔式飞奔撞车碰瓷索赔 车主吓坏:监控还清白 环球精选
- 广东有多热?网友在广东买虾 还没到家就熟了 世界今日讯
- 美国再将31家中企列入“实体清单”!
- 2999元的国产显卡值不值得冲?实测3A大作给你答案
- 焦点信息:天津:“多卡合一”创新服务“城市小蜜蜂”
- 全球快报:小米卢伟冰:小米13 Ultra在意法西德及香港地区正式开售 销售超预期
- 首发预装鸿蒙OS 4.0!华为Mate60 Pro概念图出炉 全球热资讯
- 天天精选!NASA决定造访遍地黄金的“灵神星”:平均每位美国人能分300亿美元
- 美系硬派SUV福特探险者谍照曝光!外观内饰全面升级 预计将在年内首次亮相_今日热讯
- 今日热搜:8GB显卡卖到3199元 显存成本曝光:英伟达实在太赚了
- 视点!男生抠掉脸上痘痘流血近1小时:用了一包400张抽纸
- 每日报道:6月13日华鲁恒升尿素价格暂稳
- 烟台大学附属中学石明校区举行垃圾分类科普讲座|天天时快讯
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
今日精选:Koordinator 最佳实践系列:精细化 CPU 编排
作者:乔普、申信
(资料图片)
介绍
在云原生环境中,集群提供者常常将不同类型的工作负载部署在同一个集群中,利用不同业务的不同峰值效果,实现资源分时复用,避免资源浪费。然而,不同类型负载之间混合部署常常会导致资源竞争和相互干扰。最为典型的场景便是在线和离线负载的混合部署。当离线较多的占用计算资源时,在线负载的响应时间就会受到影响;当在线长时间较多的占用计算资源时,离线负载的任务完成时间不能得到保证。这种现象属于 Noisy Neighbor 问题。
根据混合部署的程度、资源类型的不同,解决该问题有许多不同的思路。Quota 管理可从整个集群维度限制负载的资源使用量,Koordinator 在这方面提供了多层次弹性 Quota 管理功能 [1]。单机维度上看,CPU、内存、磁盘 IO,网络资源都有可能被不同负载共享。Koordinator 在 CPU、内存上已经提供了一些资源隔离和保障的能力,磁盘 IO 和网络资源方面的相关能力正在建设中。
本文主要介绍当不同类型工作负载混合部署在同一个节点上时,Koordinator 如何帮助负载之间(在线和在线、在线和离线)协同地共享 CPU 资源。
问题描述
CPU 资源 Noisy Neighbor 的本质是不同的负载之间无协同地共享 CPU 资源。
- Kubernetes 默认的资源模型利用 cgroup(cfs quota) 从 CPU 时间使用量上来限制不同负载对于 CPU 资源的访问。这种情况下,一些负载就可能会被操作系统调度器切换所在的 CPU 核。由于不同 CPU 核对不同物理位置的内存访问时间不同,切换大概率会导致更长的内存访问时间,从而影响负载性能。
- 在 NUMA 架构中,SMT 线程(逻辑核)共享物理核的执行单元和 L2 缓存。当同一个物理核中有多种工作负载时,不同工作负载间就会产生资源争抢,导致负载性能下降。
Kubernetes 在单机侧提供了拓扑管理器和 CPU 管理器来尝试解决上述问题。然而,该功能只有在 Pod 已经调度到机器上之后才会尝试生效。这样就有可能导致 Pod 会被调度到 CPU 资源满足但是 CPU 拓扑不满足负载要求的情况。
解决方案
面向应用的 CPU 编排 QoS 语义
针对上述问题和不足,Koordinator 设计了面向应用的 QoS 语义和 CPU 编排协议,如下图所示。
LS(Latency Sensitive)应用于典型的微服务负载,Koordinator 将其与其它的延迟敏感型负载隔离保障其性能。LSR(Latency Sensitive Reserved)类似于 Kubernetes 的 Guaranteed,在 LS 的基础上增加了应用要求预留绑核的语义。LSE(Latency Sensitive Exclusive)则常见于中间件等对 CPU 特别敏感的应用,Koordinator 除了满足其类似于 LSR 要求绑核的语义外,还确保其所被分配的 CPU 不与任何其它负载共享。
另外,为提高资源利用率,BE 负载可与 LSR 和 LS 共享CPU。为了确保与 BE 共享的延迟敏感型应用不受其干扰,Koordinator 提供了如干扰检测、BE 压制等策略。本文重点不在此,读者可关注后续文章。
丰富的 CPU 编排策略
对于 LSE 类型的应用,当机器是超线程架构时,只能保证负载独占逻辑核。这样当同一个物理核中有其它负载时,应用性能仍会受干扰。为此,Koordinator 支持用户在 Pod Annotation 上配置丰富的 CPU 编排策略来提高性能。
CPU 编排策略分为 CPU 绑定策略和 CPU 独占策略。CPU 绑定策略决定应用所被分配逻辑核在物理核间的分布,可采用物理核间打散或者堆叠。堆叠(FullPCPU)的方式指为应用分配完整的物理内核,可以有效地缓解 Noisy Neighbor 问题。打散(SpreadByPCPU)则主要应用于一些具有多种不同峰谷特性的延迟敏感型应用,可以让应用程序在特定时间充分使用 CPU。CPU 独占策略决定应用所被分配逻辑核的独占级别,可尽量避开已经同独占策略申请的物理核或 NUMANode。
增强的 CPU 调度能力
Koordinator 支持配置 NUMA 的分配策略,决定在调度时如何选择满意的 NUMA 节点。MostAllocated 表示从可用资源最少的 NUMA 节点分配,可以尽可能减少碎片,为后续的负载留下更大的分配空间。但是,这种方式可能会导致依赖 Barrier 的并行代码性能收到影响。DistributeEvenly 表示在 NUMA 节点上平均分配 CPU,可以提高上述并行代码的性能。LeastAllocated 表示从可用资源最多的 NUMA 节点分配。
另外,Koordinator 对 CPU 的分配逻辑是在中心调度器完成的。这样就会有一个全局的视角,避免了 Kubernetes 单机方案可能导致的 CPU 资源量满足但是拓扑不满足的窘境。
最佳实践
由上文可知,Koordinator 精细化 CPU 编排能力能够显著提高多应用混合部署场景下 CPU 敏感型工作负载的性能。为了让读者能够更清楚地使用和直观感受 Koordinator 的精细化 CPU 编排能力,本文将在线应用采用不同方式部署到集群中,观察压测中服务的延迟,来判断 CPU 编排能力的效果。
本文会在同一个机器上部署多个在线应用,压测 10 分钟,以充分模拟生产实践中可能出现的 CPU 核切换场景。对于在线应用和离线应用混合部署的情况,Koordinator 提供了如干扰检测、BE 压制等策略。本文重点不在此,读者可关注后续文章中的实践。
本次实验采用以下指标,评估应用不同部署方式下 Nginx 应用的性能表现:
- 响应时间 RT(Response Time)分位值RT 是在线应用通常关注的性能指标,RT 越低代表在线服务性能越好。RT 指标通过收集 wrk 压测结束后打印的信息获得,在实验中反映了 Nginx 应用响应 wrk 请求所花费的时间。例如 RT-p50 表示 Nginx 响应前 50% wrk 请求最大所花费的时间(中位数),RT-p90 表示 Nginx 响应前 90% wrk 请求最大所花费的时间。
- 每秒请求数 RPS(Request Per Second)RPS 是在线应用每秒服务的请求数量,服务承受的 RPS 越多代表在线服务的性能越好。
实验结果如下:
- 对比 B 和 A,可以发现采用 LSE QoS 绑核之后,服务响应时间 P99 明显减小,很好地减轻了长尾现象
- 对比 C 和 B,可以发现采用 LSR QoS 绑核且允许逻辑核占用更多物理核资源之后,在服务响应时间更好的情况下可以承受更多的请求
综上,在线服务部署在同一机器的场景下,采用 koordinator 精细化 CPU 编排能够有效抑制 Noisy Neighbor 问题,减少 CPU 核切换带来的性能下降。
环境
首先,要先准备一个 Kubernetes 集群并安装 Koordinator [2]。本文选择一个 Kubernetes 集群的两个节点来做实验,其中一个节点作为测试机,将运行 Nginx 在线服务器;另一节点作为压测机,将运行客户端的 wrk,向 Nginx 请求 Web 服务,制造压测请求。
在线应用
- 使用 ColocationProfile [3]为应用注入精细化 CPU 编排协议
B 组精细化 CPU 编排协议:
apiVersion: config.koordinator.sh/v1alpha1kind: ClusterColocationProfilemetadata: name: colocation-profile-examplespec: selector: matchLabels: app: nginx # 采用 LSE QoS qosClass: LSE annotations: # 采用物理核间堆叠 scheduling.koordinator.sh/resource-spec: "{"preferredCPUBindPolicy":"FullPCPUs"}" priorityClassName: koord-prod
C 组 CPU 精细化编排协议:
apiVersion: config.koordinator.sh/v1alpha1kind: ClusterColocationProfilemetadata: name: colocation-profile-examplespec: selector: matchLabels: app: nginx # 采用 LSR QoS qosClass: LSR annotations: # 采用物理核间打散且独占物理核 scheduling.koordinator.sh/resource-spec: "{"preferredCPUBindPolicy":"SpreadByPCPUs", "preferredCPUExclusivePolicy":"PCPULevel"}" priorityClassName: koord-prod
- 在线服务本文选用 Nginx 在线服务器,Pod YAML 如下:
---# nginx应用配置apiVersion: v1data: config: |- user nginx; worker_processes 4; # Nginx的Worker个数,影响Nginx Server的并发。 events { worker_connections 1024; # 默认值为1024。 } http { server { listen 8000; gzip off; gzip_min_length 32; gzip_http_version 1.0; gzip_comp_level 3; gzip_types *; } } #daemon off;kind: ConfigMapmetadata: name: nginx-conf-0---# Nginx实例,作为在线类型服务应用。apiVersion: v1kind: Podmetadata: labels: app: nginx name: nginx-0 namespace: defaultspec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - "${node_name}" schedulerName: koord-scheduler priorityClassName: koord-prod containers: - image: "koordinatorsh/nginx:v1.18-koord-exmaple" imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 8000 hostPort: 8000 # 压测请求访问的端口。 protocol: TCP resources: limits: cpu: "4" memory: 8Gi requests: cpu: "4" memory: 8Gi volumeMounts: - mountPath: /apps/nginx/conf name: config hostNetwork: true restartPolicy: Never volumes: - configMap: items: - key: config path: nginx.conf name: nginx-conf-0 name: config
- 执行以下命令,部署 Nginx 应用
kubectl apply -f nginx-0.yaml
- 执行以下命令,查看 Nginx 应用的 Pod 状态
kubectl get pod -l app=nginx -o wide
可以看到输出如下,表示 Nginx 应用已经在测试机上正常运行
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESnginx-0 1/1 Running 0 2m46s 10.0.0.246 cn-beijing.10.0.0.246
- 在压测机上,执行以下命令,部署压测工具 wrk
wget -O wrk-4.2.0.tar.gz https://github.com/wg/wrk/archive/refs/tags/4.2.0.tar.gz && tar -xvf wrk-4.2.0.tar.gzcd wrk-4.2.0 && make && chmod +x ./wrk
压测
- 使用压测工具 wrk,向 Nginx 应用发起压测请求。
# node_ip填写测试机的IP地址,用于wrk向测试机发起压测;8000是Nginx暴露到测试机的端口。taskset -c 32-45 ./wrk -t120 -c400 -d600s --latency http://${node_ip}:8000/
- 等待 wrk 运行结束后,获取 wrk 的压测结果,wrk 输出格式如下所示。重复多次测试,以获得相对稳定的结果。
Running 10m test @ http://192.168.0.186:8000/ 120 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 3.29ms 2.49ms 352.52ms 91.07% Req/Sec 0.96k 321.04 3.28k 62.00% Latency Distribution 50% 2.60ms 75% 3.94ms 90% 5.55ms 99% 12.40ms 68800242 requests in 10.00m, 54.46GB readRequests/sec: 114648.19Transfer/sec: 92.93MB
总结
在 Kubernetes 集群中,不同业务负载之间可能存在 CPU、内存等资源的争抢,影响业务的性能和稳定性。面对 Noisy Neighbor 现象,用户可以使用 Koordinator 为应用配置更精细的 CPU 编排策略,使得不同应用可以协同的共享 CPU 资源。我们通过实验说明,Koordinator 的精细化 CPU 编排能力能有效抑制 CPU 资源的争抢,改善应用性能。
非常欢迎你通过 Github/Slack/钉钉/微信 等方式加入我们来参与 Koordinator 开源社区。你是否已经有一些希望与我们社区交流的内容呢?可以通过以下渠道参与讨论:
- 加入社区 Slack channel (English)
- 加入社区钉钉群:搜索群号 33383887 (Chinese)
相关链接:
[1]多层次弹性 Quota 管理功能
https://koordinator.sh/docs/user-manuals/multi-hierarchy-elastic-quota-management/
[2]安装 Koordinator
https://koordinator.sh/docs/installation/
[3]ColocationProfile
https://koordinator.sh/docs/user-manuals/colocation-profile/
点击此处,立即了解 Koordinator 项目!
关键词:
今日精选:Koordinator 最佳实践系列:精细化 CPU 编排
天天观察:Android RIL&IMS源码分析
天天即时:5款超级好用的开发效率工具,建议收藏!
世界观点:记录--为什么推荐用svg而不用icon?
油价小幅下调 加一箱油将少花2元 全球最资讯
惠誉博华:48家银行未赎回二级资本债券,合计达364.8亿元
恒生指数收涨0.6% 恒生科技指数大涨重回4000点上方
中海达(300177)6月13日主力资金净买入525.51万元_天天通讯
PMR机械硬盘走到尽头了!西数/希捷正疯狂自救
6旬老人守株待兔式飞奔撞车碰瓷索赔 车主吓坏:监控还清白 环球精选
广东有多热?网友在广东买虾 还没到家就熟了 世界今日讯
美国再将31家中企列入“实体清单”!
2999元的国产显卡值不值得冲?实测3A大作给你答案
焦点信息:天津:“多卡合一”创新服务“城市小蜜蜂”
今日热文:线段树学习笔记
每日速看!尚医通-day10【微信扫码登录】(内附源码)
linux iptables安全技术与防火墙_快播报
收评:创业板指涨0.68%收获三连阳 半导体行业涨幅靠前
全球快报:小米卢伟冰:小米13 Ultra在意法西德及香港地区正式开售 销售超预期
首发预装鸿蒙OS 4.0!华为Mate60 Pro概念图出炉 全球热资讯
天天精选!NASA决定造访遍地黄金的“灵神星”:平均每位美国人能分300亿美元
美系硬派SUV福特探险者谍照曝光!外观内饰全面升级 预计将在年内首次亮相_今日热讯
今日热搜:8GB显卡卖到3199元 显存成本曝光:英伟达实在太赚了
视点!男生抠掉脸上痘痘流血近1小时:用了一包400张抽纸
每日报道:6月13日华鲁恒升尿素价格暂稳
焦点信息:市场监管总局:瞄准先进材料、人工智能等领域推动建立国家标准参考数据中心
烟台大学附属中学石明校区举行垃圾分类科普讲座|天天时快讯
速递!8GB内存笔记本卖到10499元起 苹果被批吃相难看:应该破发
货车高速上连续疯狂别车被撞停 官方:未造成伤亡、已找到肇事者|当前播报
天天热讯:马斯克相中的男人!14岁成SpaceX最年轻工程师、岗位年薪百万
环球即时看!小米平板6 Pro两个月使用心得:找不到短板的安卓板皇
Arm发布全新智能视觉参考设计 首次整合第三方IP核心
2023安洵杯 re复现
每天一道面试题:Spring的Bean生命周期
Axure RP教程_编程入门自学教程_菜鸟教程-免费教程分享_环球今日讯
环球今日报丨哥伦比亚4名空难获救儿童的母亲生前或遭家暴,孩子外公和父亲欲争夺抚养权
当前关注:你收益多少?余额宝上线第十年:每天为国人赚1亿零花钱 网友狂晒单
排队5小时!浙江网红面包黄牛加价上百元 网友吐槽:消协回应
【当前独家】中轴线文化遗产有了常设讲堂
三种方法让.NET轻松实现Excel转PDF
天天快看点丨docker-compose搭建wordpress
【播资讯】比亚迪执行副总裁:美国市场不在我们考虑范围内
石家庄迈入“刷脸”乘车时代:买一根火腿肠就能免费坐地铁活动结束了_环球动态
制作成本16.5亿!《封神三部曲》第一部7月20上映:角色海报公布 太强大 今日报
吹牛还是玩真的?丰田下一代电动汽车续航达1500公里
【天天报资讯】小米发布米家旅行箱:顶部嵌平设计 行走的小桌板
市场监管总局:到2035年 计量数据归集共享规模显著提升-快播
【技术积累】软件设计模式中的工厂模式【一】-独家
STM32F429 Discovery开发板应用:使用FreeRTOS队列+DMA双缓存实现串口数据接收
【寻味中华丨饮食】蔡甸藕带:白若玲珑玉 丝缕皆故乡
【天天时快讯】699元!XREAL Beam投屏盒子发布:随身携带的“可悬停AR空间屏”
AMD今晚发布新CPU Intel急了:至强性能比EPYC快7倍
【世界新视野】4-1战胜热火!掘金队夺队史首个NBA总冠军:网友发帖祝贺 约老师太强
小区门口连装8条减速带 物业回复让业主无语:为防业主逃费
贵1000元值不值?i7-13700H和i5-13500H对比实测 世界观点
我在塞尔维亚寻找约基奇-每日速递
全球微速讯:“铁榔头”郎平重返中学校园,为学弟学妹成长“支招”
世界最新:深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解
flutter 日志打印三種方法
最新:Linux根文件制作
热推荐:一对一直播源码平台搭建的关键条件,成败在此。
真刑!几行代码端了整个教务系统。。
启明星辰(002439)6月12日主力资金净卖出1310.11万元
长安欧尚Z6新能源半年降价3万多被集体投诉 车主:坑惨我们了
每日热讯!2折!115网盘618大促:10年VIP只要1000元 赠100TB空间
全脂/低脂可选:特仑苏纯牛奶2.7元/盒抄底(商超6元)
腾势N7赛道远超宝马X3 赵长江:意向客户看到展车后几乎全下单了
Fold5、Flip5换壳!三星W24系列折叠屏手机通过认证:25W快充
吴尚垠 吴尚_每日消息
JAVA非递归生成无限级菜单树的较简代码实现。(非泛用型工具包,仅总结逻辑)
每日关注!低代码开发平台为数智赋能,让开发变得更简单
奶我一口是什么意思网络用语_奶你一口是什么意思简介介绍
腾讯祭出的大招《无畏契约》 能不能成为下一个《英雄联盟》?-环球微速讯
环球观点:最大内存+最美拍照手机!小米Civi 3 1TB上市:2999元
当前消息!满级玩家有盼头了 暗黑世界V等你来
28.98万起 智己LS7都市版上市 CEO刘涛:现在买增程过几年就会焦虑 每日热点
男子洗澡被闯入的两匹“狼”吓坏 经辨认是阿拉斯加 焦点精选
C天键(301383)6月12日主力资金净买入2791.69万元 焦点快看
【当前独家】hvv面试常见框架漏洞
天天热头条丨ldquo 以至 rdquo ldquo 以致 rdquo ldquo 以至于 rdquo 与 ldquo 以致于 rdquo 的区别
蔚来降价3万!李斌:买的起2、30万车的人时间成本很高 时薪200元肯定是有的-世界播报
世界即时:仇恨拉满!日本核污水排放在即 韩国人正疯狂买盐:不敢吃海鲜了
三冠王巡游!曼城全队展示三座奖杯 哈兰德赤膊上阵 城迷疯狂庆祝
每日快报!暂停加息预期支撑多头 美债市场周初表现偏强
微资讯!英伟达市占率超83% 显卡降不降价我说了算!4060系列买到偷着乐?
希捷被重罚3亿美元后!消息称华为不缺硬盘、SSD了:西数持续供货中_每日资讯
十多年了 苹果新款Mac Pro依然不是中国制造:美泰联手组装
芬兰加入北约的军事协调工作结束 双方签署声明 速读
每日速读!读发布!设计与部署稳定的分布式系统(第2版)笔记01_生产环境的生存法则
大家超爱看黑美鱼?《小美人鱼》卖座成2023票房TOP10:国内外口碑两极分化
焦点简讯:漫威等大片国人不爱看了 不符合审美!郭帆:中国电影将弯道超车好莱坞
环球微速讯:香干怎么做比较好吃?
靠给肯德基、麦当劳供货的纸袋大王上市:创始人身价近12亿
一个月3家公司退出:日本手机产业无奈 打不过苹果也打不过小米-世界新消息
天天新动态:618降价英雄:大屏电视跌破2000元该如何买?
绝不降价的蔚来全系降3万!李斌被逼得没辙了
夸克App半夜突然上热搜 网友懵了:没广告很好用
全球报道:鲁葱杂5号_关于鲁葱杂5号简述
开远市气象台发布暴雨蓝色预警信号【Ⅳ级/一般】【2023-06-12】|每日速读
微控制器实时操作系统实践4选择正确的MCU 每日报道