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大开源基金会的最高级别会员。
为云而生,腾讯云服务器操作系统TencentOS内核正式开源_第1张图片

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

传统的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。欢迎广大开发者参与共享代码。