為云而生,騰訊云服務器操作系統(tǒng)TencentOS內核正式開源
1月9日,騰訊云宣布將開源其服務器操作系統(tǒng)TencentOS內核。相比業(yè)內其它版本Linux 內核,騰訊云 TencentOS 內核在資源調度彈性、容器支持、系統(tǒng)性能及安全等層面具有競爭力,特別適合云環(huán)境。該系統(tǒng)的開源及應用可幫助客戶大幅提升云上資源的利用效率,降低運營成本,同時獲得更加安全可靠的業(yè)務運行環(huán)境。
TencentOS Kernel是繼騰訊云物聯(lián)網(wǎng)操作系統(tǒng)TencentOS tiny之后,TencentOS家族對外開源的第二款產(chǎn)品。TencentOS是騰訊云操作系統(tǒng)系列產(chǎn)品,由騰訊云架構平臺部主力研發(fā),覆蓋數(shù)據(jù)中心、桌面系統(tǒng)、邊緣設備和物聯(lián)網(wǎng)終端等應用場景,提供可靠的云平臺構建、接入和應用能力,幫助客戶轉化云的價值。TencentOS服務器操作系統(tǒng)在騰訊公司服役超過10年,覆蓋公司全部自研業(yè)務,裝機量過百萬。2019年9月新開源的TencentOS tiny,是騰訊面向物聯(lián)網(wǎng)領域開發(fā)的實時操作系統(tǒng),具有低功耗、低資源占用、模塊化、安全可靠等特點,可有效提升物聯(lián)網(wǎng)終端產(chǎn)品開發(fā)效率,目前在Github上標星已達3.7k。
騰訊云操作系統(tǒng)團隊表示:“將騰訊云服務器操作系統(tǒng)內核TencentOS Kernel開源,不僅可以與全球開發(fā)者共享騰訊云在服務器操作系統(tǒng)領域的技術和經(jīng)驗,還能夠汲取全球服務器操作系統(tǒng)領域的優(yōu)秀成果和創(chuàng)新理念,助力整體服務器操作系統(tǒng)生態(tài)的繁榮。”
騰訊致力于通過開源和廣大開發(fā)者共享技術成果。近年來,騰訊開源節(jié)奏不斷加快,截至2020年1月,已在Github上開源92個項目,并積極參與開源基金會共建,目前已成為Linux、Apache等9大開源基金會的最高級別會員。
專為云設計的資源調度方案,大幅增強系統(tǒng)彈性伸縮能力
傳統(tǒng)的Linux系統(tǒng)中,公平性是資源調度算法的核心邏輯。公平的調度能很大程度提供系統(tǒng)通用性。然而,這種公平會造成資源有效利用率的低下,系統(tǒng)的彈性能力大大受限。業(yè)務無法按照需求進行資源的分配回收,不僅在于資源的數(shù)量,更在于資源的質量,如資源分配速度,搶占能力等。
在云平臺資源調度的需求背景下,TencentOS Kernel研發(fā)了專用的資源調度算法,大幅提升整機的資源彈性。業(yè)務可以根據(jù)需求指定資源分配的數(shù)量和級別,從相同數(shù)量不同級別的資源獲得的系統(tǒng)服務存在明顯差別。
TencentOS Kernel研發(fā)的CPU彈性調度算法,在離在線業(yè)務混布場景下收益十分顯著。在不影響在線業(yè)務質量的前提下,整機的CPU利用率最高提升了3倍,部分業(yè)務場景下可將整機CPU利用率提升至90%。
資源隔離全面升級,助力業(yè)務打造強大容器平臺
眾所周知,資源的安全隔離始終是容器虛擬化平臺的核心問題。社區(qū)內核提供的隔離特性遠遠不能滿足業(yè)務的需求,一些基本的系統(tǒng)狀態(tài)信息、CPU信息、磁盤狀態(tài)信息等均未做隔離,部分場景下甚至直接導致業(yè)務不可用。
TencentOS Kernel從業(yè)務需求出發(fā),首先對必要的系統(tǒng)狀態(tài),比如cpuinfo、stat、loadavg、meminfo、vmstat、diskstats、uptime等進行了隔離增強,保證容器中的應用能獲得正確的系統(tǒng)狀態(tài)信息。
更重要的是,TencentOS Kernel還提供包括NVME IO隔離等特性,徹底解決IO控制組在多隊列設備場景資源利用率低,不支持按比例隔離等問題,保證了不同場景下的IO隔離效果。
獨有系統(tǒng)安全及性能優(yōu)化特性,持續(xù)降低業(yè)務運營成本
業(yè)界的內核熱補丁技術主要都是針對X86架構進行開發(fā),缺少對ARM64等架構的支持。TencentOS Kernel通過實現(xiàn)類FMENTRY,F(xiàn)TRACE with REGS功能,給KPATCH中增加ARM64支持等實現(xiàn)了針對ARM64架構的內核熱補丁方案。
TencentOS Kernel提供進程GDB禁止功能,阻止跨進程獲取內存,加載動態(tài)庫等,保障業(yè)務進程的數(shù)據(jù)安全。
性能方面,TencentOS Kernel針對計算、存儲和網(wǎng)絡子系統(tǒng)均經(jīng)過獨有的優(yōu)化,例如PAGE CACHE LIMIT功能,限制page cache的使用率,盡量使系統(tǒng)剩余的內存能夠滿足業(yè)務的需求;TencentOS Kernel還新增多個sysctl/proc控制接口,內核啟動參數(shù)等來優(yōu)化用戶體驗。
TencentOS Kernel開源地址:https://github.com/Tencent/TencentOS-kernel。歡迎廣大開發(fā)者參與共享代碼。