为云而生,腾讯云服务器操作系统TencentOS内核正式开源-风君雪科技博客

  1 月 9 日,腾讯云宣布将开源其服务器操作系统 TencentOS 内核。相比业内其它版本 Linux 内核,腾讯云 TencentOS 内核在资源调度弹性、容器支持、系统性能及安全等层面极具竞争力,特别适合云环境。该系统的开源及应用可帮助客户大幅提升云上资源的利用效率,降低运营成本,同时获得更加安全可靠的业务运行环境。

  TencentOS Kernel 是继腾讯云物联网操作系统 TencentOS tiny 之后,TencentOS 家族对外开源的第二款产品。TencentOS 是腾讯云操作系统系列产品,由腾讯云架构平台部主力研发,覆盖数据中心、桌面系统、边缘设备和物联网终端等应用场景,提供可靠的云平台构建、接入和应用能力,帮助客户转化云的价值。TencentOS 服务器操作系统在腾讯公司服役超过 10 年,覆盖公司全部自研业务,装机量过百万。2019 年 9 月新开源的 TencentOS tiny,是腾讯面向物联网领域开发的实时操作系统,具有低功耗、低资源占用、模块化、安全可靠等特点,可有效提升物联网终端产品开发效率,目前在 Github 上标星已达 3.7k。

  腾讯云操作系统团队表示:“将腾讯云服务器操作系统内核 TencentOS Kernel 开源,不仅可以与全球开发者共享腾讯云在服务器操作系统领域的技术和经验,还能够汲取全球服务器操作系统领域的优秀成果和创新理念,助力整体服务器操作系统生态的繁荣。”

  腾讯致力于通过开源和广大开发者共享技术成果。近年来,腾讯开源节奏不断加快,截至 2020 年 1 月,已在 Github 上开源 92 个项目,并积极参与开源基金会共建,目前已成为 Linux、Apache 等 9 大开源基金会的最高级别会员。

  专为云设计的资源调度方案,大幅增强系统弹性伸缩能力

  传统的 Linux 系统中,公平性是资源调度算法的核心逻辑。公平的调度能最大程度提供系统通用性。然而,这种公平会造成资源有效利用率的低下,系统的弹性能力大大受限。业务无法按照需求进行资源的分配回收,不仅在于资源的数量,更在于资源的质量,如资源分配速度,抢占能力等。

  在云平台资源调度的需求背景下,TencentOS Kernel 研发了专用的资源调度算法,大幅提升整机的资源弹性。业务可以根据需求指定资源分配的数量和级别,从相同数量不同级别的资源获得的系统服务存在明显差别。

  TencentOS Kernel 研发的 CPU 弹性调度算法,在离在线业务混布场景下收益十分显著。在不影响在线业务质量的前提下,整机的 CPU 利用率最高提升了 3 倍,部分业务场景下可将整机 CPU 利用率提升至 90%。

  资源隔离全面升级,助力业务打造最强容器平台

  众所周知,资源的安全隔离始终是容器虚拟化平台的核心问题。社区内核提供的隔离特性远远不能满足业务的需求,一些基本的系统状态信息、CPU 信息、磁盘状态信息等均未做隔离,部分场景下甚至直接导致业务不可用。

  TencentOS Kernel 从业务需求出发,首先对必要的系统状态,比如 cpuinfo、stat、loadavg、meminfo、vmstat、diskstats、uptime 等进行了隔离增强,保证容器中的应用能获得正确的系统状态信息。

  更重要的是,TencentOS Kernel 还提供包括 NVME IO 隔离等特性,彻底解决 IO 控制组在多队列设备场景资源利用率低,不支持按比例隔离等问题,保证了不同场景下的 IO 隔离效果。

  独有系统安全及性能优化特性,持续降低业务运营成本

  业界的内核热补丁技术主要都是针对 X86 架构进行开发,缺少对 ARM64 等架构的支持。TencentOS Kernel 通过实现类 FMENTRY,FTRACE with REGS 功能,给 KPATCH 中增加 ARM64 支持等实现了针对 ARM64 架构的内核热补丁方案。

  TencentOS Kernel 提供进程 GDB 禁止功能,阻止跨进程获取内存,加载动态库等,保障业务进程的数据安全。

  性能方面,TencentOS Kernel 针对计算、存储和网络子系统均经过独有的优化,例如 PAGE CACHE LIMIT 功能,限制 page cache 的使用率,尽量使系统剩余的内存能够满足业务的需求;TencentOS Kernel 还新增多个 sysctl/proc 控制接口,内核启动参数等来优化用户体验。

  TencentOS Kernel 开源地址:https://github.com/Tencent/TencentOS-kernel。