在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

手機行業的跑分軟件是噱頭還是實力

B4Pb_gh_6fde77c ? 來源:龍蜥社區 ? 作者:百奎、丁緩 ? 2021-08-16 15:24 ? 次閱讀

一、背景:性能之戰

“不服跑個分”已經淪為手機行業的調侃用語,但是實話實說,在操作系統領域“跑分”確實是最重要的評價方式之一。比如 Linux 內核社區常常以跑分軟件得分,來評價一個優化補丁的價值。甚至還有 phoronix 這樣專注于 Linux 跑分的媒體。而且今天我還想說一點,讓軟件跑分高,這是實力的體現,是建立在對內核的深刻理解基礎上的。本文的故事就源于一次日常的性能優化分析。我們在評估自動化性能調優軟件 tuned 的時候,發現它在服務器場景,對 Linux 內核調度器相關的參數做了一些微小的修改,但是這些修改卻很大程度改善了 hackbench 這款跑分軟件的性能。是不是很有意思?讓我們一起來一探究竟。

本文將從幾個方面展開,并重點介紹黑體字部分:

相關知識簡介

hackbench 工作模式簡介

hackbench 性能受損之源

雙參數優化

思考與拓展

二、相關知識簡介

2.1 CFS調度器

Linux 中大部分(可以粗略認為是實時任務之外的所有)線程/進程,都由一個叫 CFS(完全公平調度器)的調度器進行調度,它是 Linux 最核心的組件之一。(在Linux中,線程和進程只有細微差別,下文統一用進程表述)

CFS 的核心是紅黑樹,用于管理系統中進程的運行時間,作為選擇下一個將要運行的進程的依據。此外,它還支持優先級、組調度(基于我們熟知的 cgroup 實現)、限流等功能,滿足各種高級需求。CFS 的詳細介紹。

2.2 hackbench

hackbench 是一個針對 Linux 內核調度器的壓力測試工具,它的主要工作是創建指定數量的調度實體對(線程/進程),并讓它們通過 sockets/pipe 進行數據傳輸,最后統計整個運行過程的時間開銷。

2.3 CFS 調度器參數

本文重點關注以下兩個參數,這兩個參數也是影響 hackbench 跑分性能的重要因素。系統管理員可以使用 sysctl 命令來進行設置。

最小粒度時間:kernel.sched_min_granularity_ns

通過修改 kernel.sched_min_granularity_ns,可以影響 CFS 調度周期(sched period)的時間長短。例如:設置kernel.sched_min_granularity_ns = m,當系統中存在大量可運行進程時,m 越大,CFS 調度周期就越長。

如圖 1 所示,每個進程都能夠在 CPU 上運行且時間各有長短,sched_min_granularity_ns 保證了每個進程的最小運行時間(優先級相同的情況下),sched_min_granularity_ns 越大每個進程單次可運行的時間就越長。

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

圖 1:sched_min_granularity_ns 示意圖

喚醒搶占粒度:kernel.sched_wakeup_granularity_ns

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

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

圖 2:sched_wakeup_granularity_ns 示意圖

三、hackbench 工作模式簡介

hackbench 工作模式分為 process mode 和 thread mode,主要區別就是以創建 process 還是 thread 為基礎來進行測試,下面以 thread 來進行介紹。

hackbench 會創建若干線程(偶數),均分為兩類線程:sender 和 receiver

并將其劃分為 n 個 group,每個 group 包含 m 對 sender 和 receiver。

每個 sender 的任務就是給其所在 group 的所有 receiver 輪流發送 loop 次大小為 datasize 的數據包

receiver 則只負責接收數據包即可。

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

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

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

圖 3: hackbench 工作模式主動上下文切換:

對于 receiver,當 buffer 中沒有數據時,receiver 會被阻塞并主動讓出 CPU 進入睡眠。

對于 sender,如果 buffer 中沒有足夠空間寫入數據時, sender 也會被阻塞且主動讓出 CPU。

因此,系統中"主動上下文切換"是很多的,但同時也存在“被動上下文切換”。后者會受到接下來我們將要介紹的參數影響。

四、hackbench性能影響之源

在hackbench-socket 測試中,tuned修改了 CFS 的 sched_min_granularity_ns 和 sched_wakeup_granularity_ns 兩個參數,導致了性能的顯著區別。具體如下:

開關/參數和性能 sched_min_granularity_ns sched_wakeup_granularity_ns 性能
關 tuned 2.25ms 3ms
開 tuned 10ms 15ms

接下來我們調整這兩個調度參數來進行進一步的深入分析。

五、雙參數優化

注:為了簡介表達下面會以 m 表示 kernel.sched_min_granularity_ns,w 表示 kernel.sched_wakeup_granularity_ns

為了探索雙參數對于調度器的影響,我們選擇每次固定一個參數,研究另一個參數變化對于性能的影響,并使用系統知識來解釋這種現象背后的原理。

5.1 固定sched_wakeup_granularity_ns

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

圖 4: 固定 w,調整m

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

在第二節相關知識中可以知道 m 影響著進程的運行時間,同時也意味著它影響著進程的“被動上下文切換”。

對于區域A而言,搶占過于頻繁,而大部分搶占都是無意義的,因為對端無數據可寫/無緩沖區可用,導致大量冗余的“主動上下文切換“。此時較大的 w 能讓 sender/receiver 有更多的時間來寫入數據/消耗數據來減少對端進程無意義的“主動上下文切換“。

對于區域B而言,隨著 m 的增加漸漸滿足 sender/receiver 執行任務的時間需求能夠在緩沖區寫入/讀出足夠的數據,因此需要較小的 w 來增加喚醒進程的搶占幾率,讓對端進程能夠更快的響應處理數據,減少下一輪調度時的“主動上下文切換”。

對于區域C而言,m已經足夠大,已經幾乎不會有“被動上下文切換”發生,進程會在執行完任務之后進行“主動上下文切換”等待對端進程進行處理,此時 m 對性能的影響就很小了。

5.2 固定sched_min_granularity_ns

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

圖 5: 固定 m,調整w

在上圖中我們固定了參數 m,同樣劃分了三個區域:

在區域A中,同樣存在圖 4 中的現象,較大 m 受 w 的影響較小,而較小的 m 隨著 w 的增大性能會越來越好。

在區域B中,中等大小的 m(8ms/12ms)進程還是存在較多“被動上下文切換”,并且其中的進程已經處理了相當一部分數據期望對端進程能夠盡快的響應處理,因此較大 w 會嚴重影響中等大小 m 的性能。

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

5.4 最優雙參數(對于 hackbench )

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

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

六、思考與擴展

在桌面場景中,應用更偏向于交互型,應用的服務質量也更多的體現在應用對于用戶操作的響應時間,因此可以選擇較小的 sched_wakeup_granularity_ns 來提高應用的交互性。

在服務器場景中,應用更偏向于計算處理,應用需要更多的運行時間來進行密集計算,因此可以選擇較大的 sched_min_granularity_ns,但是為了防止單個進程獨占 CPU 過久同時也為了能夠及時處理客戶端請求響應,應該選擇一個中等大小的 sched_wakeup_granularity_ns。

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

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11392

    瀏覽量

    211814
  • 調度器
    +關注

    關注

    0

    文章

    98

    瀏覽量

    5384

原文標題:“不服跑個分?” 是噱頭還是實力?

文章出處:【微信號:gh_6fde77c41971,微信公眾號:FPGA干貨】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

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

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

    vivo V50 5G手機現身Geekbench分庫

    vivo V50 5G 手機悄然現身 Geekbench 分庫,型號為 V2427,引發科技愛好者的廣泛關注。 分數據顯示,vivo V50 5G 的 Vulkan 分數達到 4122
    的頭像 發表于 02-05 15:22 ?454次閱讀

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

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

    【敏矽微ME32G070開發板免費體驗】使用coremark測試敏矽微ME32G070

    分數為112.989286,這個分數在MCU當中還是很偏低的。在開啟最大優化等級-Omax的情況下。 希望這家敏矽微公司的研發能夠好好研發,將ARM內核的性能提高,ST ,NXP, 瑞薩的MCUcoremark
    發表于 12-19 12:09

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

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

    2024 同星智能走進主機廠—零汽車

    ,特舉辦2024零智能汽車技術論壇暨前瞻技術展,為行業提供智慧碰撞、產品展示、交流合作的平臺。同星智能將攜最新產品及解決方案走進零汽車,對新能源汽車的發展、現狀
    的頭像 發表于 12-02 01:01 ?370次閱讀
    2024 同星智能走進主機廠—零<b class='flag-5'>跑</b>汽車

    軟件系統數據庫的分庫表設計

    軟件系統數據庫的分庫表設計 系統讀寫分離、分庫表技術實現采用MyCat中間件,MyCat 是一款開源(遵循 Apache License 2.0 協議)的大數據庫集群中間件,用于搭建數據庫
    的頭像 發表于 08-22 11:39 ?450次閱讀
    <b class='flag-5'>軟件</b>系統數據庫的分庫<b class='flag-5'>分</b>表設計

    AMC1311是真差輸出,還是偽差輸出?可否直接給MSP430的ADC采集?

    AMC1311是真差輸出,還是偽差輸出?可否直接給MSP430的ADC采集?還是必須要轉化為單端信號提供MSP430的ADC采集?
    發表于 08-15 06:40

    飛貓榮膺世界物聯網500強:引領行業創新,展現中國實力

    此次獲獎是公司成長歷程中的重要里程碑,也是中國物聯網行業整體實力提升的體現。隨著更多中國企業的加入,中國有望成為全球物聯網領域的重要領導者,引領行業創新與發展新趨勢。
    的頭像 發表于 08-01 14:18 ?632次閱讀
    飛貓榮膺世界物聯網500強:引領<b class='flag-5'>行業</b>創新,展現中國<b class='flag-5'>實力</b>

    軟件測試六大問 全面而深入的軟件測試行業解疑

    隨著科技的進步和大數據時代的到來,?軟件測試面臨著前所未有的挑戰和機遇。?在這篇文章中我們將深入討論軟件測試行業的發展前景、行業趨勢、薪資水平等,為讀者提供一次全面而深入的
    的頭像 發表于 07-30 10:28 ?413次閱讀

    在ram里快還是在flash里快?

    ] ...... /****************************************************/ 結論就是: 1. 在ram里塊還是在flash里塊,不是絕對的一概而論的,取決于代碼 2.就以
    發表于 05-17 15:49

    三星Galaxy Z Fold6手機GeekBench測試數據曝光,確認搭載高通驍龍芯片

    據報道,三星 Galaxy Z Fold6 手機已于近期在 GeekBench 分庫曝光,其 6.3.0 版本的單核分數高達 1964 ,多核分數則達到了 6619
    的頭像 發表于 05-17 15:47 ?721次閱讀

    索尼Xperia 10 VI Geekbench曝光,搭載高通驍龍6 Gen 1處理器

    值得注意的是,在此次發布會前夕,代號為“parrot”的Xperia 10 VI已意外出現在Geekbench分網站上,其單核得分為934,多核得分達2816
    的頭像 發表于 05-07 11:11 ?1217次閱讀

    vivo X100S手機曝光:搭載天璣9300+處理器,16GB內存,綜合表現出色

     vivo產品經理韓伯嘯提供的圖片透露,該機在Geekbench中單核得分為2313,多核得分為7743,安兔兔綜合得分高達2305267
    的頭像 發表于 04-28 15:45 ?1023次閱讀

    三星Galaxy Z Flip 6搭載驍龍8G曝光

    分庫透露,此款手機搭載名為“pineapple”的處理器,采用 1+2+2+3 核心設計,搭配 Adreno (TM) 750 GPU,可確認使用了高通驍龍 8 Gen 3 處理器。此外,該機還配置了 8GB 內存以及運行安卓 14 操作系統。
    的頭像 發表于 04-19 14:32 ?1041次閱讀
    主站蜘蛛池模板: 国产亚洲精品久久久久久牛牛 | 午夜精品视频任你躁 | 免费 在线观看 视频 | 亚洲涩色| 日韩免费视频一区二区 | 女人夜夜春 | 欧美亚洲综合在线观看 | 亚洲毛片基地4455ww | 2022欧美高清中文字幕在线看 | 国产精品免费观看网站 | 日本黄色www| 免费人成在线观看视频播放 | 好吊色视频988gao在线观看 | 天天操欧美 | www.99色.com| 欧美视频免费一区二区三区 | 欧洲亚洲一区 | 国产或人精品日本亚洲77美色 | 天天做天天爱夜夜爽 | 国产午夜剧场 | 99久久精品费精品国产一区二 | 手机看片国产福利 | 天天鲁天天爽精品视频 | 色五月婷婷成人网 | 高h水果榨汁play男男 | 日本精品高清一区二区2021 | 2019偷偷狠狠的日日 | 午夜爽爽视频 | 午夜影音 | 在线网站黄 | 天天爽夜夜春 | 深夜偷偷看视频在线观看 | 国产操视频 | 国产高清片 | 成人午夜性a一级毛片美女 成人午夜性视频欧美成人 成人小视频在线 | 性生活黄色毛片 | bt天堂电影 | 天天操天天弄 | 成人欧美一区二区三区白人 | 91在线网 | 欧美色惰aⅴ|

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品