chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

手機(jī)行業(yè)的跑分軟件是噱頭還是實(shí)力

B4Pb_gh_6fde77c ? 來源:龍蜥社區(qū) ? 作者:百奎、丁緩 ? 2021-08-16 15:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、背景:性能之戰(zhàn)

“不服跑個(gè)分”已經(jīng)淪為手機(jī)行業(yè)的調(diào)侃用語,但是實(shí)話實(shí)說,在操作系統(tǒng)領(lǐng)域“跑分”確實(shí)是最重要的評(píng)價(jià)方式之一。比如 Linux 內(nèi)核社區(qū)常常以跑分軟件得分,來評(píng)價(jià)一個(gè)優(yōu)化補(bǔ)丁的價(jià)值。甚至還有 phoronix 這樣專注于 Linux 跑分的媒體。而且今天我還想說一點(diǎn),讓軟件跑分高,這是實(shí)力的體現(xiàn),是建立在對(duì)內(nèi)核的深刻理解基礎(chǔ)上的。本文的故事就源于一次日常的性能優(yōu)化分析。我們?cè)谠u(píng)估自動(dòng)化性能調(diào)優(yōu)軟件 tuned 的時(shí)候,發(fā)現(xiàn)它在服務(wù)器場(chǎng)景,對(duì) Linux 內(nèi)核調(diào)度器相關(guān)的參數(shù)做了一些微小的修改,但是這些修改卻很大程度改善了 hackbench 這款跑分軟件的性能。是不是很有意思?讓我們一起來一探究竟。

本文將從幾個(gè)方面展開,并重點(diǎn)介紹黑體字部分:

相關(guān)知識(shí)簡(jiǎn)介

hackbench 工作模式簡(jiǎn)介

hackbench 性能受損之源

雙參數(shù)優(yōu)化

思考與拓展

二、相關(guān)知識(shí)簡(jiǎn)介

2.1 CFS調(diào)度器

Linux 中大部分(可以粗略認(rèn)為是實(shí)時(shí)任務(wù)之外的所有)線程/進(jìn)程,都由一個(gè)叫 CFS(完全公平調(diào)度器)的調(diào)度器進(jìn)行調(diào)度,它是 Linux 最核心的組件之一。(在Linux中,線程和進(jìn)程只有細(xì)微差別,下文統(tǒng)一用進(jìn)程表述)

CFS 的核心是紅黑樹,用于管理系統(tǒng)中進(jìn)程的運(yùn)行時(shí)間,作為選擇下一個(gè)將要運(yùn)行的進(jìn)程的依據(jù)。此外,它還支持優(yōu)先級(jí)、組調(diào)度(基于我們熟知的 cgroup 實(shí)現(xiàn))、限流等功能,滿足各種高級(jí)需求。CFS 的詳細(xì)介紹。

2.2 hackbench

hackbench 是一個(gè)針對(duì) Linux 內(nèi)核調(diào)度器的壓力測(cè)試工具,它的主要工作是創(chuàng)建指定數(shù)量的調(diào)度實(shí)體對(duì)(線程/進(jìn)程),并讓它們通過 sockets/pipe 進(jìn)行數(shù)據(jù)傳輸,最后統(tǒng)計(jì)整個(gè)運(yùn)行過程的時(shí)間開銷。

2.3 CFS 調(diào)度器參數(shù)

本文重點(diǎn)關(guān)注以下兩個(gè)參數(shù),這兩個(gè)參數(shù)也是影響 hackbench 跑分性能的重要因素。系統(tǒng)管理員可以使用 sysctl 命令來進(jìn)行設(shè)置。

最小粒度時(shí)間:kernel.sched_min_granularity_ns

通過修改 kernel.sched_min_granularity_ns,可以影響 CFS 調(diào)度周期(sched period)的時(shí)間長(zhǎng)短。例如:設(shè)置kernel.sched_min_granularity_ns = m,當(dāng)系統(tǒng)中存在大量可運(yùn)行進(jìn)程時(shí),m 越大,CFS 調(diào)度周期就越長(zhǎng)。

如圖 1 所示,每個(gè)進(jìn)程都能夠在 CPU 上運(yùn)行且時(shí)間各有長(zhǎng)短,sched_min_granularity_ns 保證了每個(gè)進(jìn)程的最小運(yùn)行時(shí)間(優(yōu)先級(jí)相同的情況下),sched_min_granularity_ns 越大每個(gè)進(jìn)程單次可運(yùn)行的時(shí)間就越長(zhǎng)。

d17d5954-fe4e-11eb-9bcf-12bb97331649.png

圖 1:sched_min_granularity_ns 示意圖

喚醒搶占粒度:kernel.sched_wakeup_granularity_ns

kernel.sched_wakeup_granularity_ns 保證了重新喚醒的進(jìn)程不會(huì)頻繁搶占正在運(yùn)行的進(jìn)程,kernel.sched_wakeup_granularity_ns 越大,喚醒進(jìn)程進(jìn)行搶占的頻率就越小。
如圖 2 所示,有 process-{1,2,3} 三個(gè)進(jìn)程被喚醒,因?yàn)?process-3 的運(yùn)行時(shí)間大于 curr(正在 CPU 上運(yùn)行的進(jìn)程)無法搶占運(yùn)行,而 process-2 運(yùn)行時(shí)間小于 curr 但其差值小于 sched_wakeup_granularity_ns 也無法搶占運(yùn)行,只有 process-1 能夠搶占 curr 運(yùn)行,因此 sched_wakeup_granularity_ns 越小,進(jìn)程被喚醒后的響應(yīng)時(shí)間就越快(等待運(yùn)行時(shí)間越短)。

d1aae216-fe4e-11eb-9bcf-12bb97331649.png

圖 2:sched_wakeup_granularity_ns 示意圖

三、hackbench 工作模式簡(jiǎn)介

hackbench 工作模式分為 process mode 和 thread mode,主要區(qū)別就是以創(chuàng)建 process 還是 thread 為基礎(chǔ)來進(jìn)行測(cè)試,下面以 thread 來進(jìn)行介紹。

hackbench 會(huì)創(chuàng)建若干線程(偶數(shù)),均分為兩類線程:sender 和 receiver

并將其劃分為 n 個(gè) group,每個(gè) group 包含 m 對(duì) sender 和 receiver。

每個(gè) sender 的任務(wù)就是給其所在 group 的所有 receiver 輪流發(fā)送 loop 次大小為 datasize 的數(shù)據(jù)包

receiver 則只負(fù)責(zé)接收數(shù)據(jù)包即可。

同一個(gè) group 中的sender 和 receiver 有兩種方式進(jìn)行通信:pipe 和 local socket(一次測(cè)試中只能都是 pipe 或者 socket),不同 group 之間的線程沒有交互關(guān)系。

通過上面 hackbench 模型分析,可以得知同一個(gè) group 中的 thread/process 主要是 I/O 密集型,不同 group 之間的 thread/process 主要是 CPU 密集型。

d1eaa090-fe4e-11eb-9bcf-12bb97331649.png

圖 3: hackbench 工作模式主動(dòng)上下文切換:

對(duì)于 receiver,當(dāng) buffer 中沒有數(shù)據(jù)時(shí),receiver 會(huì)被阻塞并主動(dòng)讓出 CPU 進(jìn)入睡眠。

對(duì)于 sender,如果 buffer 中沒有足夠空間寫入數(shù)據(jù)時(shí), sender 也會(huì)被阻塞且主動(dòng)讓出 CPU。

因此,系統(tǒng)中"主動(dòng)上下文切換"是很多的,但同時(shí)也存在“被動(dòng)上下文切換”。后者會(huì)受到接下來我們將要介紹的參數(shù)影響。

四、hackbench性能影響之源

在hackbench-socket 測(cè)試中,tuned修改了 CFS 的 sched_min_granularity_ns 和 sched_wakeup_granularity_ns 兩個(gè)參數(shù),導(dǎo)致了性能的顯著區(qū)別。具體如下:

開關(guān)/參數(shù)和性能 sched_min_granularity_ns sched_wakeup_granularity_ns 性能
關(guān) tuned 2.25ms 3ms
開 tuned 10ms 15ms

接下來我們調(diào)整這兩個(gè)調(diào)度參數(shù)來進(jìn)行進(jìn)一步的深入分析。

五、雙參數(shù)優(yōu)化

注:為了簡(jiǎn)介表達(dá)下面會(huì)以 m 表示 kernel.sched_min_granularity_ns,w 表示 kernel.sched_wakeup_granularity_ns

為了探索雙參數(shù)對(duì)于調(diào)度器的影響,我們選擇每次固定一個(gè)參數(shù),研究另一個(gè)參數(shù)變化對(duì)于性能的影響,并使用系統(tǒng)知識(shí)來解釋這種現(xiàn)象背后的原理。

5.1 固定sched_wakeup_granularity_ns

d21f7842-fe4e-11eb-9bcf-12bb97331649.png

圖 4: 固定 w,調(diào)整m

在上圖中我們固定了參數(shù) w 并根據(jù)參數(shù) m 變化趨勢(shì)其劃分為三個(gè)部分:區(qū)域A(1ms~4ms),區(qū)域B(4ms~17ms),區(qū)域C(17ms~30ms)。在區(qū)域A中四條曲線均呈現(xiàn)一個(gè)極速下降的趨勢(shì),而在區(qū)域B中四條曲線都處于一種震蕩狀態(tài),波動(dòng)較大,最后在區(qū)域C中四條曲線都趨于穩(wěn)定。

在第二節(jié)相關(guān)知識(shí)中可以知道 m 影響著進(jìn)程的運(yùn)行時(shí)間,同時(shí)也意味著它影響著進(jìn)程的“被動(dòng)上下文切換”。

對(duì)于區(qū)域A而言,搶占過于頻繁,而大部分搶占都是無意義的,因?yàn)閷?duì)端無數(shù)據(jù)可寫/無緩沖區(qū)可用,導(dǎo)致大量冗余的“主動(dòng)上下文切換“。此時(shí)較大的 w 能讓 sender/receiver 有更多的時(shí)間來寫入數(shù)據(jù)/消耗數(shù)據(jù)來減少對(duì)端進(jìn)程無意義的“主動(dòng)上下文切換“。

對(duì)于區(qū)域B而言,隨著 m 的增加漸漸滿足 sender/receiver 執(zhí)行任務(wù)的時(shí)間需求能夠在緩沖區(qū)寫入/讀出足夠的數(shù)據(jù),因此需要較小的 w 來增加喚醒進(jìn)程的搶占幾率,讓對(duì)端進(jìn)程能夠更快的響應(yīng)處理數(shù)據(jù),減少下一輪調(diào)度時(shí)的“主動(dòng)上下文切換”。

對(duì)于區(qū)域C而言,m已經(jīng)足夠大,已經(jīng)幾乎不會(huì)有“被動(dòng)上下文切換”發(fā)生,進(jìn)程會(huì)在執(zhí)行完任務(wù)之后進(jìn)行“主動(dòng)上下文切換”等待對(duì)端進(jìn)程進(jìn)行處理,此時(shí) m 對(duì)性能的影響就很小了。

5.2 固定sched_min_granularity_ns

d22d184e-fe4e-11eb-9bcf-12bb97331649.png

圖 5: 固定 m,調(diào)整w

在上圖中我們固定了參數(shù) m,同樣劃分了三個(gè)區(qū)域:

在區(qū)域A中,同樣存在圖 4 中的現(xiàn)象,較大 m 受 w 的影響較小,而較小的 m 隨著 w 的增大性能會(huì)越來越好。

在區(qū)域B中,中等大小的 m(8ms/12ms)進(jìn)程還是存在較多“被動(dòng)上下文切換”,并且其中的進(jìn)程已經(jīng)處理了相當(dāng)一部分?jǐn)?shù)據(jù)期望對(duì)端進(jìn)程能夠盡快的響應(yīng)處理,因此較大 w 會(huì)嚴(yán)重影響中等大小 m 的性能。

在區(qū)域C中圖5和圖4表現(xiàn)一致都是趨于穩(wěn)定,因?yàn)?w 過大時(shí)幾乎不會(huì)發(fā)生喚醒搶占,因此這時(shí)單純 w 值的變化對(duì)性能的影響并不大,但是過大的 w 對(duì)于中等大小的 m 則會(huì)造成性能問題(原因同上條)。

5.4 最優(yōu)雙參數(shù)(對(duì)于 hackbench )

從上面兩節(jié)的分析可知對(duì)于 hackbench 這樣帶有“主動(dòng)上下文切換”的場(chǎng)景可以選擇較大的 m(例如:15~20ms)。

在pipe/socket 雙向通信的場(chǎng)景中,對(duì)端的響應(yīng)時(shí)間會(huì)對(duì)影響進(jìn)程的下一次處理,為了讓對(duì)端進(jìn)程能夠及時(shí)響應(yīng)可以選擇一個(gè)中等大小的 w(例如:6~8ms)來獲取較高的性能。

六、思考與擴(kuò)展

在桌面場(chǎng)景中,應(yīng)用更偏向于交互型,應(yīng)用的服務(wù)質(zhì)量也更多的體現(xiàn)在應(yīng)用對(duì)于用戶操作的響應(yīng)時(shí)間,因此可以選擇較小的 sched_wakeup_granularity_ns 來提高應(yīng)用的交互性。

在服務(wù)器場(chǎng)景中,應(yīng)用更偏向于計(jì)算處理,應(yīng)用需要更多的運(yùn)行時(shí)間來進(jìn)行密集計(jì)算,因此可以選擇較大的 sched_min_granularity_ns,但是為了防止單個(gè)進(jìn)程獨(dú)占 CPU 過久同時(shí)也為了能夠及時(shí)處理客戶端請(qǐng)求響應(yīng),應(yīng)該選擇一個(gè)中等大小的 sched_wakeup_granularity_ns。

在 Linux 原生內(nèi)核中 m 和 w 的默認(rèn)參數(shù)被設(shè)置為適配桌面場(chǎng)景,Anolis OS的用戶,需要根據(jù)自己部署的應(yīng)用的場(chǎng)景,屬于桌面型還是服務(wù)器型,來選擇內(nèi)核參數(shù),或者使用tuned的推薦配置。而 hackbench 作為一個(gè)介于桌面和服務(wù)器間的應(yīng)用,也可以作為配置的參考。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11576

    瀏覽量

    216618
  • 調(diào)度器
    +關(guān)注

    關(guān)注

    0

    文章

    99

    瀏覽量

    5598

原文標(biāo)題:“不服跑個(gè)分?” 是噱頭還是實(shí)力?

文章出處:【微信號(hào):gh_6fde77c41971,微信公眾號(hào):FPGA干貨】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【CPKCOR-RA8D1】+ 3.RA8D1 測(cè)試MCU性能 coremark

    AI算法的MCU,加上480MHZ的主頻,性能應(yīng)該非常的強(qiáng)勁,所以本期就使用coremark來對(duì)RA8D1進(jìn)行測(cè)試??纯茨芘芏嗌俜郑。?! 1。首先從官網(wǎng)下載coremark源代碼 https
    發(fā)表于 10-12 17:49

    大小鼠跑步機(jī) 小動(dòng)物臺(tái) 動(dòng)物跑步機(jī) 大鼠實(shí)驗(yàn)臺(tái) 小動(dòng)物能量 代謝氣體臺(tái)

    *200mm;對(duì)比上一代產(chǎn)品尺寸變小,重量減小 50%,臺(tái)更輕更靜音;3、 跑道速度無級(jí)可調(diào),速度范圍在 0-60 米 / ;( 大鼠推薦 20 米 / 、小鼠推薦 12 米 /
    發(fā)表于 08-14 13:57

    【GM-3568JHF開發(fā)板免費(fèi)體驗(yàn)】GM-3568JHF的coremark5007

    coremark進(jìn)入目錄 輸入make編譯 二、 輸入./coremark.exe 可以看到最終 視美泰GM-3568JHF 最后分為5007。 再來看看常見開發(fā)板的
    發(fā)表于 07-22 17:32

    【VisionFive 2單板計(jì)算機(jī)試用體驗(yàn)】coremark測(cè)試

    查看 4核risv CPU 安裝溫度sensor apt install lm-sensors 輸入sensors查看板子溫度 顯示是51.5度,有點(diǎn)發(fā)燙 2。進(jìn)行coremark 先從
    發(fā)表于 07-12 12:38

    【VisionFive 2單板計(jì)算機(jī)試用體驗(yàn)】1、開箱初體驗(yàn)(刷系統(tǒng)+靜態(tài)IP設(shè)置+GPU測(cè)評(píng))

    。 GPU 首先用clinfo命令查看一下GPU,當(dāng)然也可以在debain-system setting-about界面看到BXE-4-32GPU benchmark軟件一般用glmark2
    發(fā)表于 07-09 21:50

    最有實(shí)力的APP開發(fā)公司是哪家?探尋行業(yè)內(nèi)的佼佼者

    軟件
    北京華盛恒輝科技
    發(fā)布于 :2025年06月09日 09:45:50

    國(guó)內(nèi)最好的軟件開發(fā)公司是哪家?實(shí)力最強(qiáng)的

    軟件
    北京華盛恒輝科技
    發(fā)布于 :2025年06月06日 12:22:43

    蘇州芯矽科技:半導(dǎo)體清洗機(jī)的堅(jiān)實(shí)力

    的核心奧秘。不追逐華而不實(shí)的噱頭,而是實(shí)實(shí)在在地依據(jù)市場(chǎng)需求和行業(yè)走向,精心打磨每一個(gè)技術(shù)細(xì)節(jié)。 其半導(dǎo)體清洗機(jī),堪稱匠心之作。在清洗技術(shù)方面,融合了超聲波清洗、噴淋清洗與化學(xué)濕法清洗等多元手段,針對(duì)
    發(fā)表于 06-05 15:31

    看點(diǎn):雷軍:小米芯片超300萬 特斯拉愿向車企授權(quán)FSD技術(shù) 比亞迪與Grenergy簽供貨協(xié)議

    給大家?guī)硪恍?b class='flag-5'>行業(yè)資訊消息: 雷軍:小米芯片超300萬 在5月22日的小米戰(zhàn)略新品發(fā)布會(huì)上,雷軍公布小米玄戒O1芯片安兔兔結(jié)果,測(cè)評(píng)
    的頭像 發(fā)表于 05-23 14:41 ?419次閱讀

    學(xué)硬件好還是學(xué)軟件好?

    學(xué)硬件好還是學(xué)軟件好? 選擇學(xué)習(xí)硬件還是軟件取決于個(gè)人興趣、職業(yè)目標(biāo)以及對(duì)不同工作方式的偏好。以下是兩者的一些比較,幫助你做出更合適的選擇。 學(xué)習(xí)硬件可以讓你深入了解計(jì)算機(jī)和電子設(shè)備的
    發(fā)表于 04-07 15:27

    飛行汽車,是噱頭,還是未來?

    低空經(jīng)濟(jì)的概念在 2025年可謂是非?;馃?,在2025年的《政府工作報(bào)告》中,也明確提出要深入推進(jìn)戰(zhàn)略性新興產(chǎn)業(yè)融合集群發(fā)展。開展新技術(shù)新產(chǎn)品新場(chǎng)景大規(guī)模應(yīng)用示范行動(dòng),推動(dòng)商業(yè)航天、低空經(jīng)濟(jì)等新興產(chǎn)業(yè)安全健康發(fā)展。低空經(jīng)濟(jì)作為以低空空域(通常指地面以上1000米以下的空域)為載體的新型經(jīng)濟(jì)形態(tài),其核心在于利用無人機(jī)、電動(dòng)垂直起降飛行器(eVTOL)、輕型運(yùn)動(dòng)航空器等航空器,結(jié)合智能化基礎(chǔ)設(shè)施和多樣化應(yīng)用場(chǎng)景,構(gòu)建起涵蓋物流
    的頭像 發(fā)表于 03-14 08:58 ?2386次閱讀
    飛行汽車,是<b class='flag-5'>噱頭</b>,<b class='flag-5'>還是</b>未來?

    vivo V50 5G手機(jī)現(xiàn)身Geekbench分庫(kù)

    vivo V50 5G 手機(jī)悄然現(xiàn)身 Geekbench 分庫(kù),型號(hào)為 V2427,引發(fā)科技愛好者的廣泛關(guān)注。 分?jǐn)?shù)據(jù)顯示,vivo V50 5G 的 Vulkan 分?jǐn)?shù)達(dá)到 4122
    的頭像 發(fā)表于 02-05 15:22 ?972次閱讀

    AI超8000,天璣9400憑實(shí)力碾壓一眾旗艦芯片

    蘇黎世AI Benchmark榜單冠軍,以稱霸行業(yè)的AI性能,加速智能手機(jī)的智能體化進(jìn)程。 AI Benchmark自2018年推出以來,一直是業(yè)界評(píng)估AI性能的重要工具。2023年,AI Benchmark迎來了V6版本的大幅改版,進(jìn)一步提升了其測(cè)試的全面性和多樣性。V
    的頭像 發(fā)表于 01-10 12:40 ?1312次閱讀
    AI<b class='flag-5'>跑</b><b class='flag-5'>分</b>超8000,天璣9400憑<b class='flag-5'>實(shí)力</b>碾壓一眾旗艦芯片

    康尼新能源亮相2024零智能汽車技術(shù)論壇暨前瞻技術(shù)展

    近日,由零和蓋世汽車主辦的“2024零智能汽車技術(shù)論壇暨前瞻技術(shù)展”在杭州零總部拉開帷幕,此次技術(shù)展匯聚了眾多汽車零部件行業(yè)的優(yōu)質(zhì)供應(yīng)商,旨在促進(jìn)深入交流與合作??的嵝履茉磾y多款
    的頭像 發(fā)表于 12-10 13:59 ?724次閱讀