AI智能总结
陶松桥腾讯操作系统研发负责人 讲师简介 腾讯操作系统专家,负责OpenCloudOS和腾讯操作系统的研发工作,主导了OpenCloudOS和TencentOSServer多个版本产品的研发和运营,在操作系统体系结构,应用开发,系统适配等具有丰富经验。在全球基础软件创新大会,全球运维大会,开放原子全球开源峰会有过多次演讲。 陶松桥腾讯操作系统研发负责人 01.开源历程02.创新实践03.开源生态04.未来展望 01.开源历程 腾讯操作系统的开源发展路线 腾讯积极参与操作系统开源社区建设 应对CentOS停服挑战,开放中立的OpenCloudOS社区应运而生 OpenCloudOS社区发展历程 持续投入L1源社区到L3社区稳定版本研发,做中国操作系统全链路供应标杆,打造全栈自研科技创新安全可靠高性能基础设施 OpenCloudOSStream- L1上游版本 OpenCloudOS9.0 - L3稳定版本 OpenCloudOS社区成员联合研发基于OpenCloudOS Stream 23的首个L3全自研版本 新版本基础软件 •支持GPG加解密加速•PAM新增验证模块•OpenSSL 3.0•更多的算法支持,部分软件原生支持SM3、SM4国密算法 •多体系架构和新硬件支持•多核性能优化•混部隔离特性增强•MGLRU、Maple Tree等特性提升内存管理效率•完善的Cgroup V2支持,多架构热补丁支持,细致化的调优与系统适配 •GCC 12,LLVM 14•Kona JDK 11/17•Glibc 2.38•Python 3.11•Rust 1.64.0 存储、文件及设备管理 系统服务 网络服务 •逻辑卷管理LVM2 2.03.16•文件系统工具e2fsprogs1.46.5•分区工具Parted 3.5 •Systemd 253支持Cgroup v2更多特性•dracut支持zstd固件、并行探测•GRUB2支持TPM、NVMe设备、RAID5 •Nftables 1.0.4•iptables 1.8.8 www.top100summit.com OpenCloudOS全面优化:性能全面提升 OpenCloudOS针对海量业务场景进行深度的性能优化,相比Upstream原生内核有明显的提升 虚拟化性能提升达150% 基础性能提升10-200% •PVIPI/PVTLBShootdown:降低虚拟化开销提升达130%-150%•FastpathIPI:IPI和timer性能提升30%和16.5%•并行化的vMMU方案:虚拟机缺页处理时内存分配性能提升100%•8项技术获评KVM社区年度核心突破 容器场景性能提升达187% •Nginx:性能最大提升150%•Redis:性能提升11% •LRUlock优化:多容器并发访问pagecache性能提升187%•Ebpf能力增强:完整支持Cillium,容器网络快速转发,性能提升50%+ 02.创新实践OpenCloudOS云原生特性与创新实践 云时代操作系统的演进 OSFor云原生OS变薄,再变厚云原生是OS技术创新的优良土壤 聚焦核心技术研发,积极参与上游社区贡献•技术实力全景图 1、依托TencentOS10年+专业技术打磨、系统整体可用性99.999%,享有多级质量保障,提供高级别的安全防护服务 2、在KVM(内核虚拟化技术)上游社区贡献上,连续6次社区贡献量全国第一 3、Kona蝉联JDK18中国企业贡献度第1,连续4次对OpenJDK开源社区贡献全国第一 云原生场景下内存多级卸载—背景 产业背景—内存需求成本不断上升、有效利用率较低 服务器在数据中心硬件采购成本中占比最高,达到80%左右 •其中CPU、GPU和DRAM是主要成本项 数据中心应用程序对内存的需求持续增长 •随着数据量和业务复杂度上升,内存需求陡增 业务内存中不活跃冷内存占有很大比例 •比例值根据业务不同会有波动 应用程序为了提高性能,大都采用内存密集性策略 云原生场景下内存多级卸载—方向 落地方向-业务超卖&业务降配&混部弹性内存超卖 节省负载内存 在容器平台中,对workload开启内存多级卸载,可以平均回收40%的冷内存,workload在申请memoryresources的时候,一般会预留一部分buffer。 应用节省内存 业务超卖:对workload开启多级卸载后,增加单pod(CVM)流量,提高TPS、QPS。 负载降配 •降低业务成本:对workload开启内存多级卸载后,降低workload resources的memory request和limit,降低平台业务的上云成本。•提高集群装箱率:多数集群节点CPU/MEM是1:2,但是很多大内存workload(1:4,1:8),影响集群装箱率,将大内存workload降配后(1:8 -> 1:4),以提高集群装箱率。 混部弹性内存超卖 •提高内存混部率:把非内存敏感型workload开启内存多级卸载,节省出多余的空闲内存资源,可以调度更多的离线(低优先级)pod上来,并且,在整机内存压力大的情况下,优先迁出、OOM调离线(低优 先级)pod。 云原生场景下内存多级卸载—问题 内存多级卸载方案在容器平台落地遇到的问题 回收路径难以确定:内存多级卸载的回收名单是cgrouppath list,但是在容器平台中,podcgrouppath是一串哈希值,并且pod会在集群的node中间迁入迁出,如何确定node上哪些pod需要开启内存多级卸载,并且随着pod状态的改变,实时改变回收名单?回收参数难以确定:在容器平台中,需要开启内存多级卸载的workload对内存回收的敏感程度是不一样的,如何判断workload类型,然后使用对应回收参数? 主动回收导致的问题: •误回收“冷”文件页:主动回收额外的文件页面,由于当前lru精度比较单调,导致误回收一些将会访问的页面,导致cache miss,造成读IOPS增加。•过度压缩匿名页:在主备存储模型中,备份节点一直处于空闲状态,因为PSI一直表征空闲情况,内存多级卸载不断将其匿名页面压缩到zram,突然的主备切换,导致备节点突增大量请求,所有在zram的页面基本都需要解压,造成颠簸的延迟反应。 zram的页面无法统计:workload的resources.limits.memory是对memory.usage_in_bytes做限制,但是压缩在zram的匿名页面无法被限制,会造成计数器泄露的问题,pod可能无限制的利用node上的zram资源,而k8s感知不到。 隔离非内存多级卸载pod的换出行为:当对node节点开启zram的时候,虽然不对非内存多级卸载pod做主动回收,但在非内存多级卸载pod容器内存紧缺的情况下、或者整机内存紧缺的情况下,依然有可能把非内存多级卸载pod的匿名页面压缩到zram中,改变客户原本的预期行为。 云原生场景下内存多级卸载—“悟净”架构 “悟净”——整体架构 wujing-umrd daemonset: •qos-agent container:在node上,找到哪些pod打开了多级卸载,并且把pod cgroup和回收参数发送到umrd ds。•umrd container:umrd根据qos-agent传递过来的回收列表进行主动回收,并且根据回收参数、PSI、refault计算回收文件页、匿名页的数量。 mglru增强模块: •拆分接口:文件页面、匿名页面独立扫描、回收。•Workingset Evaluation:评估有效文件页回写数量。•new workingset refault feature:优化mglru workingset。 swap隔离模块:system disable、cgroup disablezram增强模块:per-cgroup zram priority、per-cgroup zram counter(raw、limit、usage)热度探测模块:匿名段热度探测,容器总匿名页、文件页面热度探测。 云原生场景下内存多级卸载—“悟净”效果 落地效果 目前内存多级卸载在腾讯在线容器平台、离线容器平台、混部容器平台都已成熟应用,覆盖业务含:键值存储、文件存储、聊天图片存储、聊天消息存储、AI平台、游戏AI训练、转码、数据库等。主要收益场景:超卖、降配、混部。 超卖场景: •内存节省:提升单机的内存售卖率,降低内存存储的成本。相同数据量情况下,开启多级卸载,内存用量降低35%。 •延迟情况:请求延时基本没有波动(单位:ms)。 云原生场景下内存多级卸载—“悟净”效果 落地效果 降配场景: 内存节省:对workload开启多级内存卸载,稳定降低内存用量后,降低workload的配置,节省业务上云成本。 性能:降低业务workload 86%的OOM数量。 服务器节能—背景 产业背景—服务器CPU能耗大,现有调度策略不完善 积极响应碳中和,降本增效是主流,服务器节能收益 CPU提供节能能力,仅通过硬件直接调整方案不足 业务负载分时段波动、资源使用有高有低 现有调度策略尽可能保证系统负载均衡,任务被均衡到各个核上,各个核都需要最高性能运行 服务器节能—“悟能”方案 “悟能”设计思想 算力分割,一些是活动算力资源,一些是闲置资源 将短任务合并运行,提高cpu利用率 空闲出更多cpu,CPU空闲更久 保证活动算力高性能,闲置cpu进入更深睡眠状态 根据负载,动态的调节空闲CPU比例 助力服务器节能减排,最终实现碳中和 服务器节能—“悟能”架构 “悟能”整体架构 将CPU划分成活动集合和休眠集合 C-sate休眠核进入c-6活动核最多进入c-1休眠整机空闲状态可进入PC6休眠P-state:P-state只在休眠核降频P-state在活动核保持默认频率调度&中断:防止进程选到休眠集合限制只在活动集合进行balance中断迁移弹性CPU策略根据算力,负载的指导稳定缩核进程突发、中断突发、网络包突发等紧急扩核 机制:保证空闲核睡眠省电 策略:弹性扩缩容算法 服务器节能—“悟能”性能影响 “悟能”调度时延影响小,综合性能无影响 极限压力下,悟能对调度延迟增加0.15us,影响小于ftrace悟能不会带来大延迟毛刺主流的30+测试工具的350+测试项影响在3%以内,业务指标1%以内,如Unixbench各项case无影响 服务器节能—“悟能”节能数据 “悟能”测试机器与实际部署效果 随着cpu利用率变高active核数变多,cpu利用率超过30%的情况下,几乎打开所有的核随着cpu利用率变高节能效果变差cpu利用率越低,节能效果越好,在20%cpu利用率以内情况节能越明显,达到5%-50%随着部署上量,集群平均功耗降低减少IDC 5%-30%的碳排放,年节省6亿KWH以上 全场景混部—“如意”统一资源隔离 IDC整体自研利用率低,CPU利用率:<15% 离线业务:TDW大数据(压缩和常规)、AI训练、广告转码 整体方案:底层资源隔离(RUE)+上层容器编排 •上限高,适用性广,不挑业务•OS内核层自动的容器隔离,冲突处理•相比社区,内核隔离能力全面增强 全场景混部—“如意”效果 智能弹性多优先级混部有效降低成本:OpenCloudOS通过分时弹性资源QoS,实现智能弹性多优先级混部核心能力,满足企业最低成本实现数据化转型及计算数据上云。 OpenCloudOS安全RoadMap:建设主被动一体的全链路安全防御新体系 安全启动Secure Boot 可信计算Trusted Computing 机密计算Confidential Computin