自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ubuntu大佬神操作!Rust版Linux調(diào)度器秀麻了,性能遠(yuǎn)超C!

原創(chuàng) 精選
開發(fā) 前端
近年來,在編程語言界,Rust的存在感越來越強(qiáng)。不少公司、個(gè)人都開始對(duì)使用內(nèi)存安全的Rust進(jìn)行關(guān)鍵任務(wù)開發(fā)產(chǎn)生了濃厚興趣,以取代可能意外引入安全漏洞的C語言。

整理丨諾亞

出品 | 51CTO技術(shù)棧(微信號(hào):blog51cto)

近日,一位Linux內(nèi)核工程師出于興趣用Rust編寫了一個(gè)Linux調(diào)度器。

這位來自Ubuntu制造商Canonical的工程師名叫Andrea Righi。他在X(推特)上發(fā)文談到,他利用圣誕假期進(jìn)行了這項(xiàng)實(shí)驗(yàn)。沒想到這個(gè)只是“出于好玩”而進(jìn)行的項(xiàng)目卻帶來了意外驚喜。

初步結(jié)果顯示:通過sched_ext實(shí)現(xiàn)并基于eBPF技術(shù)、能夠在運(yùn)行時(shí)加載的Rust調(diào)度器具有很大的潛力和希望。

1、令人意外的結(jié)果:Rust版超越默認(rèn)版

“結(jié)果讓我很驚訝。它不僅能夠正常工作,而且在某些負(fù)載(例如游戲)下甚至可以超越Linux內(nèi)核默認(rèn)的EEVDF調(diào)度器?!?/p>

Righi表示,盡管仍處于原型階段,但它成功完成了使命,即“證明在用戶空間實(shí)現(xiàn)運(yùn)行的工作調(diào)度器是可行的,并且在某些特定條件下甚至可以超越Linux默認(rèn)調(diào)度器的性能”。

他還分享了一段視頻:一個(gè)簡單的電腦游戲Terraria正常運(yùn)行,同時(shí)該機(jī)器正在后臺(tái)進(jìn)行內(nèi)核編譯。

基于廣大吃瓜群眾的要求,Righi將Linux默認(rèn)調(diào)度器和Rust版調(diào)度器的內(nèi)核構(gòu)建時(shí)間和游戲性能進(jìn)行了比對(duì)。

截圖:來自X@arighi截圖:來自X@arighi

可以看到,其中:

  • linux sched:內(nèi)核構(gòu)建280s,Terraria ~每秒30幀
  • rustland:內(nèi)核構(gòu)建361s,Terraria ~每秒60幀

也就是說,切換到Rust版調(diào)度器后,游戲畫面提升到了每秒60幀,是之前的兩倍,而同期內(nèi)核編譯只是多花了約30%的構(gòu)建時(shí)間。由此可見,“scx_rustland”調(diào)度器在游戲中表現(xiàn)的確優(yōu)于Linux內(nèi)核默認(rèn)調(diào)度器。

Righi已將相關(guān)代碼托管在了GitHub上。感興趣的朋友可以繼續(xù)關(guān)注其未來的發(fā)展方向。

2、內(nèi)核調(diào)度器之爭:Linux需要更多的調(diào)度器嗎?

Linux內(nèi)核調(diào)度器負(fù)責(zé)執(zhí)行一項(xiàng)關(guān)鍵任務(wù),即分配給應(yīng)用程序一段段的CPU時(shí)間,旨在確保每個(gè)應(yīng)用程序都能公平地獲得執(zhí)行時(shí)間。

通常,這一目標(biāo)是通過使用完全公平調(diào)度(Completely Fair Scheduler, CFS)算法來實(shí)現(xiàn)的。(注:CFS算法致力于平衡各個(gè)應(yīng)用程序?qū)μ幚砥髻Y源的需求,以達(dá)到整體系統(tǒng)性能最優(yōu)化的效果。)

盡管Linux的“一刀切”式調(diào)度器在過去很長一段時(shí)間內(nèi)表現(xiàn)出色,但在如今分布式計(jì)算環(huán)境日益復(fù)雜、IT環(huán)境異構(gòu)化加劇的背景下,可能需要對(duì)其進(jìn)行更新升級(jí)。

當(dāng)傳統(tǒng)的單一調(diào)度策略難以滿足現(xiàn)實(shí)需求時(shí),人們?cè)趯で蟾嗥凭值穆窂?,比如,通過引入如BPF這樣的技術(shù)來實(shí)現(xiàn)更加靈活、可擴(kuò)展且針對(duì)性更強(qiáng)的調(diào)度機(jī)制。

簡單說明一下BPF。所謂BPF,是Berkeley Packet Filter的縮寫。BPF提供了一種當(dāng)內(nèi)核或應(yīng)用特定事件發(fā)生時(shí)候,執(zhí)行一段代碼的能力。BPF 采用了虛擬機(jī)指令規(guī)范,所以也可以看作一種虛擬機(jī)實(shí)現(xiàn),使我們可以在不修改內(nèi)核源碼和重新編譯的情況下,提供一種擴(kuò)展內(nèi)核的能力的方法。

2013 年由技術(shù)大牛Alexei Starovoitov 向Linux社區(qū)提交了重新實(shí)現(xiàn)BPF的內(nèi)核補(bǔ)丁,相關(guān)工作于2014年正式并入Linux 內(nèi)核主線。此舉將其擴(kuò)展成了通用的執(zhí)行引擎,稱為eBPF,其可以完成多種任務(wù),包括用來創(chuàng)建先進(jìn)的性能分析工具。

LWN.Net首席編輯Jonathan Corbett在今年2月評(píng)論道:“將BPF引入內(nèi)核CPU調(diào)度器只是時(shí)間問題?!?/p>

Corbett解釋說,基于BPF的調(diào)度器之所以有意義,有多個(gè)原因:它使得嘗試新的調(diào)度方法變得更加容易。如今的系統(tǒng)遠(yuǎn)比過去幾十年要復(fù)雜得多,因此需要更多領(lǐng)域特定和針對(duì)性的調(diào)度解決方案(例如針對(duì)游戲和網(wǎng)絡(luò)應(yīng)用的調(diào)度器)。此外,它還能為開發(fā)者提供一種針對(duì)其自身應(yīng)用程序優(yōu)化CPU使用方式的方法。

而Righi開發(fā)的scx_rustland是對(duì)sched_ext這一實(shí)驗(yàn)性Linux內(nèi)核特性的實(shí)現(xiàn),sched_ext允許運(yùn)行可在內(nèi)核中創(chuàng)建并加載的基于BPF的內(nèi)核線程調(diào)度器。該特性由來自Meta和Google的一組工程師以及其他內(nèi)核社區(qū)成員共同研發(fā),并希望有一天能將其合并到Linux內(nèi)核的核心代碼庫中。

值得注意的是,并非Linux社區(qū)中的每個(gè)人都支持動(dòng)態(tài)調(diào)度這一理念,其中包括Linus Torvalds本人。Linux調(diào)度器維護(hù)者Peter Zijlstra在評(píng)論sched_ext的首次發(fā)布時(shí)提到:“我討厭這一切”,并補(bǔ)充道,鑒于替代調(diào)度器引入的復(fù)雜性,Torvalds曾否決了之前關(guān)于此類調(diào)度器的所有嘗試。

此外,AMD和Google兩家公司也提出了各自的替代調(diào)度器方案。這些舉措表明,在如何優(yōu)化Linux內(nèi)核調(diào)度以適應(yīng)更復(fù)雜異構(gòu)環(huán)境的問題上,業(yè)內(nèi)依舊各執(zhí)一詞。

3、使用Rust,真的會(huì)比C更有優(yōu)勢(shì)嗎?

近年來,在編程語言界,Rust的存在感越來越強(qiáng)。不少公司、個(gè)人都開始對(duì)使用內(nèi)存安全的Rust進(jìn)行關(guān)鍵任務(wù)開發(fā)產(chǎn)生了濃厚興趣,以取代可能意外引入安全漏洞的C語言。

此前,我們也曾在《Linux 誕生32年:“暴君”Linus 平和了》一文中報(bào)道過,Torvalds對(duì)于在內(nèi)核中使用Rust持開放態(tài)度。他曾談到,從明年開始會(huì)著手將Rust引入驅(qū)動(dòng)程序、甚至是某些主要子系統(tǒng),總之“Rust確實(shí)有成為內(nèi)核重要部分的趨勢(shì)”。

因此,在Linux新聞網(wǎng)站Phoronix報(bào)道Righi的工作時(shí),將關(guān)注點(diǎn)放在了Rust的使用上。讓這篇文章引起討論的焦點(diǎn)從調(diào)度器本身挪開,集中到了關(guān)于使用Rust而非C語言是否更有優(yōu)勢(shì)上面。

有人質(zhì)疑:“這個(gè)調(diào)度器到底有何與眾不同,使其表現(xiàn)出了實(shí)質(zhì)性的差異?是因?yàn)樗形赐瓿蛇€是確實(shí)因?yàn)樗鼉?yōu)秀?因?yàn)槲也幌嘈臨ust本身會(huì)比C語言更好。究竟有什么是在Rust中能做而在C中做不到的呢?”

有人更是直接指出,調(diào)度器的設(shè)計(jì)始終涉及權(quán)衡取舍。顯然,這款為游戲優(yōu)化的調(diào)度器犧牲了一些其他功能以換取更好的游戲性能。

當(dāng)然也有人對(duì)此持更為積極的態(tài)度。在Hacker News討論中,有網(wǎng)友寫道:“這篇新聞告訴我們的是,Rust實(shí)現(xiàn)的調(diào)度器在這一領(lǐng)域可以與C語言實(shí)現(xiàn)相媲美。這一消息為我們解鎖了更多選擇,無論是C語言調(diào)度器還是Rust調(diào)度器,意味著Linux社區(qū)在處理各種工作負(fù)載時(shí)可以獲得更好的體驗(yàn)?!?/p>

而對(duì)于Righi本人,他在接受媒體采訪時(shí)表示,Rust提供了極大的靈活性,這使他能夠迅速啟動(dòng)并推進(jìn)這個(gè)項(xiàng)目。

“我不能說Rust在性能提升方面貢獻(xiàn)巨大,但它讓我能夠在幾周內(nèi)編寫出這個(gè)調(diào)度器,同時(shí)實(shí)現(xiàn)和重用了優(yōu)雅的高級(jí)抽象,并在我需要的時(shí)候能夠深入到底層細(xì)節(jié)?!?/p>

參考鏈接:

https://www.phoronix.com/news/Rust-Linux-Scheduler-Experiment

https://thenewstack.io/bpf-opens-a-door-to-linux-dynamic-scheduling-maybe-with-rust/

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2023-11-21 20:28:02

C++Pythonweb開發(fā)

2021-02-26 10:43:59

Linux 開發(fā)操作系統(tǒng)

2024-05-16 12:38:05

GPT-4o圖像方式

2017-09-01 12:26:18

Linux調(diào)度器系統(tǒng)

2017-02-09 09:00:14

Linux IO調(diào)度器

2019-12-02 09:45:45

Linux IO系統(tǒng)

2011-01-21 07:36:00

LinuxBFSCFS

2021-12-03 11:57:27

代碼##語言

2023-04-07 07:20:05

Rust系統(tǒng)項(xiàng)目

2021-11-01 12:45:29

UbuntuLinuxRust

2023-05-11 08:08:18

MySQL主從復(fù)制

2011-01-13 13:59:14

2017-07-12 11:59:46

Linux游戲版Ubuntu Game

2022-04-20 18:05:00

Rust編程語言開發(fā)

2021-12-26 21:49:19

微信面試參數(shù)

2024-06-24 07:00:00

C++RustGo

2009-04-03 09:03:12

瀏覽器Java性能測試

2010-05-24 13:04:55

MySQL 事件調(diào)度器

2009-04-02 13:13:12

Linux瀏覽器Chromium

2010-04-30 09:33:52

Ubuntu 10.0
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)