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