Linux 4.10當(dāng)中將帶來深遠(yuǎn)影響的三項(xiàng)小改變
譯文【51CTO.com快譯】Linux的演進(jìn)永不停歇。Linus Torvalds一直在努力工作,希望能夠在新的內(nèi)核版本當(dāng)中(4.11)融入更多變化。不過在目前的Linux 4.10中,我們同樣發(fā)現(xiàn)了三組能夠有效提升性能并實(shí)現(xiàn)多種前所未有功能集的變更。
下面,我們將共同了解這些可能對您、您的云服務(wù)供應(yīng)商以及Linux應(yīng)用程序擁有重要影響的變化。
1. 虛擬化GPU
毫無疑問,GPU屬于一類很難在虛擬機(jī)中成功模擬的硬件。一般來講,虛擬機(jī)會(huì)提供它定制化的驅(qū)動(dòng)程序(速度很慢),而圖形調(diào)用則必須在訪客與主機(jī)間進(jìn)行翻譯(速度很慢)。理想的解決方案自然是在訪客系統(tǒng)內(nèi)運(yùn)行與主要相同的圖形驅(qū)動(dòng)程序,從而將一切必要調(diào)用直接指向GPU。
但單純能夠運(yùn)行還遠(yuǎn)遠(yuǎn)不夠,畢竟有些用戶可能希望在虛擬機(jī)中運(yùn)行《戰(zhàn)地1》這樣的大型游戲。這意味著每一種由GPU提供的資源——包括通過CUDA等庫提供的GPU加速流程——皆可如常規(guī)非虛擬機(jī)設(shè)備一樣運(yùn)行在虛擬機(jī)內(nèi)。
英特爾公司推出了一組處理器擴(kuò)展,名為GVT-G,專門用于實(shí)現(xiàn)上述目標(biāo)。然而直到Linux 4.10,我們才終于能夠在操作系統(tǒng)層面對GVT-G加以支持。除了通過KVM支持此項(xiàng)功能(即KVMGT),英特爾還貢獻(xiàn)了面向Xen與QEMU虛擬機(jī)管理程序的圖形處理支持方案。
在內(nèi)核中直接支持GVT-G意味著第三方產(chǎn)品能夠在無需對內(nèi)核進(jìn)行調(diào)整的情況下對相關(guān)資源加以利用。這類似于Docker將一系列本地Linux功能轉(zhuǎn)化為DevOps解決方案的作法,它們成功的根源在于此類特性適用于大多數(shù)現(xiàn)代Linux版本。
2. 更出色的緩存控制技術(shù)
如今的CPU擁有強(qiáng)大的處理速度。然而,從主存儲(chǔ)器內(nèi)提取數(shù)據(jù)的速度限制了CPU的性能,因此我們需要利用緩存讓數(shù)據(jù)盡可能與CPU貼近。除了緩存容量這一限制因素之外,以往的操作系統(tǒng)在緩存管理方面也存在短板。而Linux 4.10就此提供了多種新型技術(shù)與工具。
首先,Linux 4.10支持英特爾緩存分配技術(shù)(簡稱CAT),這項(xiàng)功能可用于Haswell及之后的芯片組。利用CAT,三級(及更高版本的二級)緩存空間可面向特定任務(wù)進(jìn)行分配與保留,意味著特定應(yīng)用緩存不會(huì)被其他應(yīng)用所刷新。CAT還針對基于緩存的計(jì)時(shí)攻擊提供一定程度保護(hù)——很明顯,現(xiàn)代計(jì)算體系中的每一個(gè)角落都有可能被利用為攻擊向量。
與這項(xiàng)特性一道出現(xiàn)的為perf c2c。這款新型系統(tǒng)工具適用于存在多個(gè)插槽且采取非均勻內(nèi)存訪問(簡稱NUMA)機(jī)制的系統(tǒng)。在這種情況下,各線程運(yùn)行在不同CPU之上,因此可能由于試圖修改同一內(nèi)存區(qū)段而導(dǎo)致運(yùn)行效率低下。Perf c2c能夠有效解決這一性能問題,不過與CAT類似它同樣只適用于英特爾處理器。
3. 回寫管理
“從誕生以來,Linux通過進(jìn)程將寫入內(nèi)存的數(shù)據(jù)同步至磁盤(即后臺(tái)回寫)機(jī)制就一直飽受詬病,”KernelNewbies.org在相關(guān)評論文章中指出。而在4.10版本中,該I/O請求隊(duì)列會(huì)接受監(jiān)控以把握其請求延遲,且那些可能造成更高延遲(特別高寫入強(qiáng)度操作)的操作會(huì)被暫停以允許其他線程能夠正常運(yùn)行。
另一項(xiàng)作用大體相同的實(shí)驗(yàn)性功能為提供一套RAID5回寫緩存(默認(rèn)關(guān)閉),這意味著面向RAID5陣列內(nèi)多塊磁盤的寫入操作可以進(jìn)行合并。另一實(shí)驗(yàn)性功能混合塊輪詢(默認(rèn)關(guān)閉)提供一種新的方式對數(shù)據(jù)吞吐量巨大的設(shè)備進(jìn)行輪詢。此類輪詢有助于提升性能,但若輪詢頻率過高則可能引發(fā)麻煩;新的輪詢機(jī)制能夠確保實(shí)現(xiàn)性能提升但又不至于占用過多CPU資源。
上述調(diào)整可能會(huì)對云計(jì)算實(shí)例帶來可觀的積極影響。Amazon提供的多種實(shí)例類型就正好符合其適用范圍,而內(nèi)核層面的改進(jìn)則能夠在讀取與寫入操作之間帶來更理想的平衡效果。因此可以肯定的是,Linux 4.10的這幾項(xiàng)小小改變將受到整個(gè)技術(shù)業(yè)界的熱烈歡迎。
原文標(biāo)題:3 little things in Linux 4.10 that will make a big difference,作者:Serdar Yegulalp
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】