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

四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路 原創(chuàng)

發(fā)布于 2024-12-31 11:42
瀏覽
0收藏

一、系統(tǒng)軟件技術(shù)的核心價值與面臨挑戰(zhàn)

系統(tǒng)軟件作為軟件架構(gòu)的基石,扮演著連接軟件與硬件的橋梁角色,位于整個軟件生態(tài)的最底層,處于關(guān)鍵核心的位置。系統(tǒng)軟件最為顯著的特征在于其規(guī)模效應(yīng),隨著服務(wù)器體量的增加,系統(tǒng)軟件研發(fā)的價值愈發(fā)凸顯。

首先,系統(tǒng)軟件技術(shù)能夠顯著提升服務(wù)器資源的利用率,實現(xiàn)翻倍效果,同時性能也能提升 30%~50%,從而大幅降低公司的服務(wù)器資源成本。其次,專業(yè)的系統(tǒng)軟件團隊能夠迅速定位并解決底層技術(shù)問題,避免小故障累積成大故障,確保業(yè)務(wù)穩(wěn)定運行,降低潛在風(fēng)險。此外,系統(tǒng)軟件還扮演著橋梁的角色,推動著服務(wù)器和上層軟件的架構(gòu)持續(xù)演進與創(chuàng)新,為公司的技術(shù)發(fā)展注入源源不斷的動力。

然而,隨著規(guī)模的擴大,系統(tǒng)軟件研發(fā)也面臨著更為嚴(yán)格的挑戰(zhàn)和約束條件。特別是在快手這樣的背景下,挑戰(zhàn)尤為突出。一方面,系統(tǒng)軟件團隊需要具備深厚的技術(shù)底蘊,不僅要深入到底層軟件和硬件領(lǐng)域,還要理解上層平臺以及業(yè)務(wù)邏輯,才能與業(yè)務(wù)團隊保持同頻共振。另一方面,與行業(yè)內(nèi)的大型企業(yè)相比,快手在系統(tǒng)軟件研發(fā)上的人力和物力投入相對有限。因此,快手需要更加精準(zhǔn)地識別并解決公司面臨的關(guān)鍵技術(shù)問題,在解決關(guān)鍵問題上做到極致,不追求大而全。同時,快手需要站在巨人肩膀上,基于巨人創(chuàng)新突破,避免重復(fù)造輪子。

最后,在技術(shù)推廣方面,快手也面臨著不小的挑戰(zhàn)。如何將底層技術(shù)成果有效地推廣至全公司,是一個亟待解決的問題。這需要快手以公司和行業(yè)的成本效益戰(zhàn)略為指導(dǎo),緊密結(jié)合業(yè)務(wù)的實際需求,實現(xiàn)與業(yè)務(wù)的共贏。同時,快手需要降低技術(shù)推廣的成本,甚至實現(xiàn)對業(yè)務(wù)的透明化,確保新技術(shù)的引入不會給業(yè)務(wù)帶來穩(wěn)定性和安全方面的隱患。在此基礎(chǔ)上,快手還需要保持技術(shù)的先進性,不斷推動系統(tǒng)軟件的創(chuàng)新與發(fā)展,為公司的長遠發(fā)展提供堅實的技術(shù)支撐。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)

二、“四橫四縱”架構(gòu)——快手系統(tǒng)軟件技術(shù)體系的基石

自 2020 年初起,快手系統(tǒng)軟件技術(shù)團隊開始進行自研技術(shù)的探索,憑借對業(yè)務(wù)場景需求的深刻洞察及技術(shù)趨勢的精準(zhǔn)預(yù)判,成功構(gòu)建了一套獨特的“四橫四豎”架構(gòu)的系統(tǒng)軟件技術(shù)體系。若將軟件體系比作一棵參天大樹,系統(tǒng)軟件無疑是深植于土壤中的“樹根”,它位于軟件架構(gòu)的最底層,既連接著硬件資源,又支撐著上層軟件,發(fā)揮著承上啟下的關(guān)鍵作用。向下做好資源管理和抽象,向上高效、穩(wěn)定、安全支撐好平臺和業(yè)務(wù)。因此,掌握系統(tǒng)軟件技術(shù)對于技術(shù)人員而言,不僅是深入技術(shù)根基的必經(jīng)之路,也是實現(xiàn)個人持續(xù)成長的重要階梯。

快手的系統(tǒng)軟件技術(shù)涵蓋了操作系統(tǒng)、編譯構(gòu)建、運行時(JVM)、系統(tǒng)診斷、系統(tǒng)觀測等多個方向,每一環(huán)節(jié)都至關(guān)重要。其中,操作系統(tǒng)作為最基礎(chǔ)和核心的軟件,更是我國亟待突破的關(guān)鍵核心技術(shù)之一。

  • 最上層是 Java 運行底座——JVM,它為 Java 應(yīng)用提供穩(wěn)定高效的運行環(huán)境,是 Java 生態(tài)中不可或缺的一環(huán)。
  • 緊接著是編譯系統(tǒng)層,主要聚焦于 C++構(gòu)建系統(tǒng)與編譯技術(shù),確保代碼的高效編譯與優(yōu)化。
  • 再往下則是操作系統(tǒng)層,作為系統(tǒng)軟件的核心組成部分,它負責(zé)資源管理、任務(wù)調(diào)度等關(guān)鍵功能,是保障系統(tǒng)穩(wěn)定運行的基礎(chǔ)。
  • 而位于最底層的微架構(gòu)層,涵蓋了 CPU 微架構(gòu)與 GPU 微架構(gòu),這一層直接決定了硬件的性能發(fā)揮,是技術(shù)大樹深植土壤的根基所在。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


2.1 JVM 技術(shù)創(chuàng)新:Java 17 透明協(xié)程與 Checkpoint 技術(shù)

Java 作為快手第一大語言,占有資源在千萬核級別。面對 JDK 社區(qū)日新月異的發(fā)展,盡管新版本在穩(wěn)定性、性能和功能方面不斷優(yōu)化,但直接使用開源版本在快手的實際應(yīng)用場景中仍可能遭遇穩(wěn)定性和性能瓶頸,阻礙了其在生產(chǎn)環(huán)境中的廣泛應(yīng)用。同時,快手正積極研發(fā)契合自身業(yè)務(wù)需求的 JVM 特性,這些特性亟需與上游 JDK 社區(qū)實現(xiàn)深度整合。鑒于此,快手組建專業(yè)的 JVM 團隊顯得尤為迫切。在自研 JVM 的道路上,快手并非從零開始,而是站在巨人的肩膀上,吸取社區(qū)、行業(yè)新能力的基礎(chǔ)上,進行自主創(chuàng)新。在實踐中,快手發(fā)現(xiàn)成本優(yōu)化能全局統(tǒng)籌穩(wěn)定性、性能和易用性這三個維度,符合公司降本增效的戰(zhàn)略。為了極致提升單實例性能,我們從 IPC(每周期指令數(shù))、利用率和復(fù)雜度降低三個維度入手。同時,為擴大其應(yīng)用規(guī)模,需深入研究各類場景發(fā)生的小概率事件,確保 JVM 的穩(wěn)定性和易用性。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


近年來,快手在 JVM 領(lǐng)域取得了不少先進的技術(shù)成果。作為行業(yè)內(nèi)首個將 Java 17 超大規(guī)模上線的公司,快手還最早大規(guī)模應(yīng)用了 ISA-L 和彈性內(nèi)存技術(shù),并研發(fā)了首個 Java 17 透明協(xié)程和 JVM Checkpoint 技術(shù)等。

2.1.1 Java 17 透明協(xié)程

對于編程開發(fā)者,傳統(tǒng)線程模型邏輯直觀但性能受限,而異步模型雖性能高卻復(fù)雜性大。協(xié)程以“同步編程,異步執(zhí)行”平衡兩者,成為現(xiàn)代語言標(biāo)配。在阿里的 Wisp 協(xié)程基礎(chǔ)上,我們進行了兩大核心優(yōu)化:一是重構(gòu)協(xié)程調(diào)度,通過引入了就近調(diào)度、延遲睡眠、LIFO 策略、延遲滿足以及線程復(fù)用等多種優(yōu)化手段確保低負載工況下協(xié)程的高效執(zhí)行,解決了低負載場景下利用率高的問題,使協(xié)程的覆蓋率大幅提升。經(jīng)此優(yōu)化,快手協(xié)程在低負載工況下的 CPU 指標(biāo)不僅解決了利用率比線程高 10%的問題,甚至還優(yōu)于傳統(tǒng)線程模型 14%。二是通過協(xié)程隊列與載體線程的分離技術(shù),解決了 JNI(Java Native Interface)執(zhí)行時間長導(dǎo)致的業(yè)務(wù)延時過長問題,進一步擴大了協(xié)程的適用場景。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


從這兩個問題的解決來看,為了做到上層無感知,JVM 需要處理很多復(fù)雜的場景,實際上將復(fù)雜度下沉到 JVM 層面,真正做到復(fù)雜留給自己,簡單留給用戶。此外,雖說系統(tǒng)軟件有比較好的規(guī)模效應(yīng),但絕不是簡單的復(fù)制,比如這里提到大規(guī)模落地需要解決很多小規(guī)模場景不用解決的問題,另外在擴量的過程中,一些小概率問題變成必然問題,例如在我們所面對的場景中,哪怕是十萬分之一概率出現(xiàn)的問題,也需要修復(fù)打磨好,這對技術(shù)能力提出了極致的要求。

2.1.2 JVM Checkpoint

近期,我們在研發(fā)另一項有趣且極具挑戰(zhàn)性的技術(shù)——JVM Checkpoint。這項技術(shù)能將 JVM 內(nèi)部的 CodeCache、Metaspace 等數(shù)據(jù)快照保存到遠程,下次 JVM 啟動可以直接拉起快照,快速運行。從實際應(yīng)用效果來看,在啟用 Checkpoint 之前,啟動時間需要 150s,而啟用后,啟動時間大幅度縮減至 80 秒,啟動速度提升了近一半。此外,啟動階段利用率能從 23%降低到 5%。這項技術(shù)將能大幅度提升應(yīng)用啟動速度,增加彈性能力,大幅減少回滾時間,也能節(jié)省啟動階段資源預(yù)留成本。值得一提的是,快手系統(tǒng)軟件團隊始終堅持做難而正確的事,我們提前 1-2 年進行技術(shù)規(guī)劃和儲備,以確保我們的技術(shù)始終走在行業(yè)的前沿。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


2.2 BOLT+AutoFDO 等編譯技術(shù)組合做功,顯著提升整體性能

編譯器領(lǐng)域的核心使命是為公司提供高性能、穩(wěn)定、安全且易用的編譯技術(shù),其中快手的主要承載產(chǎn)品是 KBuild。KBuild 助力快手大部分業(yè)務(wù)編譯構(gòu)建,其價值體現(xiàn)在四方面:研發(fā)效率上,通過分布式和緩存技術(shù),KBuild 將 C++工程編譯時間從超 1 小時縮短至 5 分鐘內(nèi),大幅提升團隊效率;穩(wěn)定性上,通過灰度發(fā)布控制基礎(chǔ)組件,減少代碼變更引發(fā)的穩(wěn)定性問題;代碼質(zhì)量上,配備靜態(tài)掃描機制,發(fā)現(xiàn)開發(fā) Review 階段難以察覺的問題;性能優(yōu)化方面,通過編譯優(yōu)化技術(shù)降低服務(wù)器用量,優(yōu)化延時提升用戶體驗。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


快手的 C++編譯優(yōu)化技術(shù)涵蓋整個流程,包括編譯期參數(shù)調(diào)優(yōu)、AutoFDO、鏈接期 LTO 優(yōu)化、鏈接后 BOLT 優(yōu)化及基礎(chǔ)庫的 SIMD、高性能 Protobuf、JSON 優(yōu)化等。這些技術(shù)不僅應(yīng)用開源工具,更根據(jù)實際需求深度改造。例如,為解決 LTO 技術(shù)增加編譯時間的問題,快手引入分布式集群編譯和編譯緩存技術(shù),使編譯時間僅秒級增長。BOLT 作為一項先進的鏈接后優(yōu)化技術(shù),其核心優(yōu)勢在于通過分析線上運行程序的 perf 數(shù)據(jù)來優(yōu)化二進制文件。而 AutoFDO 則基于采集的 profile 數(shù)據(jù)在編譯期進行優(yōu)化,兩者在多個場景下可以協(xié)同工作以提升性能。然而,在快手實際落地過程中,我們遇到了一個挑戰(zhàn):當(dāng)嘗試將 BOLT 與 AutoFDO 合并使用時,由于 AutoFDO 會導(dǎo)致二進制文件發(fā)生變化,使得為 BOLT 準(zhǔn)備的 profile 數(shù)據(jù)失效,從而無法充分發(fā)揮兩者的優(yōu)化效果。為了解決這一問題,快手團隊深入研究了最新的 Match+Infer 方案,并成功在公司的一個業(yè)務(wù)服務(wù)上進行了驗證。結(jié)果顯示,采用該方案后,優(yōu)化效果從單獨使用 BOLT 時的 8%提升至了 12%(即 AutoFDO+BOLT 的組合優(yōu)化效果)。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


快手已大規(guī)模應(yīng)用這些編譯優(yōu)化技術(shù),整體性能提升了 10%~13%,同時延時降低了 4%~8%,不僅降低了成本,還在業(yè)務(wù)效果和用戶體驗上產(chǎn)生了顯著收益。

2.3 自研內(nèi)核與資源隔離技術(shù):推動云原生場景下的高效混部與資源優(yōu)化

快手工程師開發(fā)的 C++、Java、Python、Go 程序均運行在其自研內(nèi)核上,該內(nèi)核針對云原生場景進行了深度定制,包括內(nèi)核隔離、GPU 虛擬化等特性。為確保 OS 的穩(wěn)定性,快手建設(shè)了一系列工具,如自動化測試框架,以提高問題定位和修復(fù)效率。同時,針對新硬件如不同品牌的 CPU 和 GPU 的引入,內(nèi)核也進行了大量適配,以支撐新硬件的演進。此外,由于 CentOS 停服,快手也自研 KwaiOS 來作為替代。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


在當(dāng)前環(huán)境下,為最大化資源利用和控制成本,我們期望在同一臺機器上同時部署在線和離線業(yè)務(wù)。然而,這種高密度部署雖提高了資源利用率,卻加劇了業(yè)務(wù)間的干擾,特別是在線業(yè)務(wù)易受抖動影響,威脅其可用性。為解決此問題,我們在操作系統(tǒng)內(nèi)核層面加強了隔離?;谛袠I(yè)方案進行重構(gòu),我們將調(diào)度樹拆分為在線和離線兩棵,核內(nèi)調(diào)度時優(yōu)先在線業(yè)務(wù),確保在線可絕對搶占離線資源,減少了離線對在線的干擾。但在推廣搜等內(nèi)存瓶頸突出、延時敏感的業(yè)務(wù)中,我們面臨新的挑戰(zhàn)。為此,我們推出快手 2.0 階段的 CPU 調(diào)度策略優(yōu)化方案,引入雙隊列,將在線和離線的負載均衡徹底分開,在整個物理機層面先調(diào)度在線,進一步降低離線對在線的干擾。上線調(diào)度 QoS 后,在線業(yè)務(wù)調(diào)度延時大幅下降。

上述 QoS 調(diào)度是內(nèi)核隔離技術(shù)體系的關(guān)鍵一環(huán),我們共研發(fā)了 15 種隔離能力,其中 7 項源自社區(qū)和阿里,8 項針對快手場景進行了重構(gòu)和優(yōu)化。我們還在研發(fā) LLC 隔離和 CoreFirst 調(diào)度能力,實現(xiàn)極端敏感場景下的在線無感混部,做到幾乎任意業(yè)務(wù)都具備在離混部的能力。采用這 10 多項內(nèi)核隔離技術(shù)后,整機利用率在符合業(yè)務(wù) SLO 標(biāo)準(zhǔn)下翻倍提升。然而,提升容器云整體利用率還需在集群層面努力,如統(tǒng)一調(diào)度、資源合池、運營治理等,這是一個龐大體系化工程,而內(nèi)核隔離是基礎(chǔ)和前置條件。目前,快手通用在線混部集群在規(guī)模和日均利用率上均達行業(yè)領(lǐng)先水平。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


隨著智算時代的到來,快手研發(fā)了 GPU 虛擬化技術(shù),可將單張物理 GPU 卡虛擬為多張?zhí)摂M卡,支持多在線業(yè)務(wù)或在線與離線業(yè)務(wù)的混合部署,提升 GPU 利用率且對業(yè)務(wù)無影響。同時,鑒于內(nèi)存成本上升及內(nèi)存容量成為多業(yè)務(wù)場景的瓶頸,系統(tǒng)軟件層面亦研發(fā)了 JVM 彈性內(nèi)存和內(nèi)核冷熱內(nèi)存技術(shù),通過冷熱分級和壓縮下沉冷數(shù)據(jù)至低成本設(shè)備(如 ZRAM、SSD、云盤),實現(xiàn)整機內(nèi)存節(jié)省超 20%。

2.4 系統(tǒng)診斷與微架構(gòu):為數(shù)十萬服務(wù)器穩(wěn)定性、高性能保駕護航

系統(tǒng)診斷與微架構(gòu)是快手系統(tǒng)軟件比較有特色的地方。系統(tǒng)診斷團隊專注于保障公司數(shù)十萬臺服務(wù)器的穩(wěn)定運行,解決宕機、夯機及干擾等穩(wěn)定性難題,無論是單機故障還是系統(tǒng)級復(fù)雜問題,均承擔(dān)最終兜底責(zé)任。微架構(gòu)團隊深挖 CPU/GPU 微架構(gòu)潛力,優(yōu)化硬件性能。例如,針對 AMD CPU 在某些場景下性能優(yōu)于 Intel 但早期表現(xiàn)不佳的情況,團隊通過 NUMA/SubNUMA 技術(shù)優(yōu)化,使 AMD 性能提升 20%~30%,成功推動數(shù)萬臺 AMD 服務(wù)器大規(guī)模部署。此外,采用大頁技術(shù)(THP)減少 TLB miss,加速內(nèi)存訪問,性能提升 6%~10%,有效優(yōu)化內(nèi)存延時,解決內(nèi)存墻問題。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


2.5 極致性能優(yōu)化:實現(xiàn) CPU 性能翻倍與資源節(jié)省

快手系統(tǒng)軟件常用的 CPU 性能優(yōu)化方法論如下,其核心目標(biāo)是在確保符合 SLO 的前提上,最大化提升單機吞吐能力(對于在線服務(wù)而言,通常體現(xiàn)為 QPS 的提升)。這一優(yōu)化過程在三個維度發(fā)力:利用率提升讓程序跑得更滿,比如前面提到的協(xié)程和在離線混部就是這個維度;在 IPC 提升維度,比如前面提到的通過微架構(gòu)優(yōu)化能提升 IPC;另外復(fù)雜度降低維度,比如業(yè)務(wù)做的簡化架構(gòu)、請求合并、無用邏輯刪除等等都是這個維度。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


今年我們協(xié)助業(yè)務(wù)優(yōu)化了一個看似簡單的 size 函數(shù),該函數(shù)僅占兩行代碼,卻消耗了整體 8.4%的 CPU。從算法復(fù)雜度看難以理解,但從微架構(gòu)視角分析,其 cache 命中率極低,大部分時間用于從內(nèi)存加載數(shù)據(jù),即遇到內(nèi)存墻問題。使用 prefetch 因數(shù)據(jù)地址無規(guī)律而無效。隨后,我們從功能模塊整體出發(fā),增強亂序執(zhí)行能力,降低數(shù)據(jù)依賴粒度,提升 CPU 亂序執(zhí)行概率,最終使功能模塊性能提升 30%,size 函數(shù) CPU 占比降至 2.5%左右。結(jié)合 BOLT、LTO 編譯技術(shù)及 THP(透明大頁)等,整體性能翻倍,節(jié)省數(shù)千臺服務(wù)器資源。


三、系統(tǒng)軟件演進總結(jié)

在過去四年里,系統(tǒng)軟件團隊實現(xiàn)了從 0 到 1 的突破性演進,為快手帶來了眾多高價值的技術(shù)成果。盡管篇幅所限,許多精彩的技術(shù)細節(jié)未能詳盡展現(xiàn),但我們依然熱忱地邀請您蒞臨快手,與我們深入交流探討。系統(tǒng)軟件技術(shù)團隊匯聚了一群對技術(shù)充滿熱愛、敢于挑戰(zhàn)自我的新老伙伴。他們與快手共同成長,不僅為公司創(chuàng)造了卓越的技術(shù)價值,也在個人成長的道路上不斷前行。


四年匠心磨礪,快手系統(tǒng)軟件技術(shù)創(chuàng)新與領(lǐng)域演進之路-AI.x社區(qū)


如今,系統(tǒng)軟件團隊仍在持續(xù)進化,我們渴望吸納更多有志于技術(shù)創(chuàng)新的人才加入,共同為公司的繁榮發(fā)展貢獻智慧與力量。如果您對我們的技術(shù)充滿好奇,或者渴望與我們進行深度的技術(shù)交流,請隨時聯(lián)系我們(??xionggang@kuaishou.com??)。我們期待著與您攜手共進,共同開創(chuàng)技術(shù)新篇章!

系統(tǒng)軟件簡介:

「我們是誰」

系統(tǒng)軟件連接軟件和硬件,處于軟件最底層,起到承上啟下的作用,如果把軟件體系比喻為一顆大樹的話,系統(tǒng)軟件是“樹根”??焓窒到y(tǒng)軟件涵蓋 JVM、編譯系統(tǒng)、操作系統(tǒng)、微架構(gòu)、系統(tǒng)診斷、系統(tǒng)觀測、性能優(yōu)化等領(lǐng)域,為公司業(yè)務(wù)提供穩(wěn)定、高效、安全的計算底座。

「我們的使命」

打造云原生、AI 友好的軟硬連接器,向下做好資源管理和抽象,向上穩(wěn)定、高效、安全支撐好平臺和業(yè)務(wù)。

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦