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。歡迎廣大開發者參與共享代碼。git