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