国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

“不服跑個分?”是噱頭還是實力?

網(wǎng)絡(luò)
我們在評估自動化性能調(diào)優(yōu)軟件 tuned 的時候,發(fā)現(xiàn)它在服務(wù)器場景,對 Linux 內(nèi)核調(diào)度器相關(guān)的參數(shù)做了一些微小的修改,但是這些修改卻很大程度改善了 hackbench 這款跑分軟件的性能。是不是很有意思?讓我們一起來一探究竟。

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

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

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

相關(guān)知識簡介
hackbench 工作模式簡介
hackbench 性能受損之源
雙參數(shù)優(yōu)化

思考與拓展

二、相關(guān)知識簡介

2.1 CFS調(diào)度器

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

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

2.2 hackbench

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

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

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

最小粒度時間:kernel.sched_min_granularity_ns

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

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

圖 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 越小,進程被喚醒后的響應(yīng)時間就越快(等待運行時間越短)。

圖 2:sched_wakeup_granularity_ns 示意圖

三、hackbench 工作模式簡介

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

hackbench 會創(chuàng)建若干線程(偶數(shù)),均分為兩類線程:sender 和 receiver
并將其劃分為 n 個 group,每個 group 包含 m 對 sender 和 receiver。
每個 sender 的任務(wù)就是給其所在 group 的所有 receiver 輪流發(fā)送 loop 次大小為 datasize 的數(shù)據(jù)包
receiver 則只負責接收數(shù)據(jù)包即可。
同一個 group 中的sender 和 receiver 有兩種方式進行通信:pipe 和 local socket(一次測試中只能都是 pipe 或者 socket),不同 group 之間的線程沒有交互關(guān)系。
通過上面 hackbench 模型分析,可以得知同一個 group 中的 thread/process 主要是 I/O 密集型,不同 group 之間的 thread/process 主要是 CPU 密集型。

圖 3: hackbench 工作模式

主動上下文切換:

對于 receiver,當 buffer 中沒有數(shù)據(jù)時,receiver 會被阻塞并主動讓出 CPU 進入睡眠。
對于 sender,如果 buffer 中沒有足夠空間寫入數(shù)據(jù)時, sender 也會被阻塞且主動讓出 CPU。
因此,系統(tǒng)中"主動上下文切換"是很多的,但同時也存在“被動上下文切換”。后者會受到接下來我們將要介紹的參數(shù)影響。

四、hackbench性能影響之源

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

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

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

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

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

5.1 固定 sched_wakeup_granularity_ns

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

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

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

對于區(qū)域A而言,搶占過于頻繁,而大部分搶占都是無意義的,因為對端無數(shù)據(jù)可寫/無緩沖區(qū)可用,導致大量冗余的“主動上下文切換“。此時較大的 w 能讓 sender/receiver 有更多的時間來寫入數(shù)據(jù)/消耗數(shù)據(jù)來減少對端進程無意義的“主動上下文切換“。
對于區(qū)域B而言,隨著 m 的增加漸漸滿足 sender/receiver 執(zhí)行任務(wù)的時間需求能夠在緩沖區(qū)寫入/讀出足夠的數(shù)據(jù),因此需要較小的 w 來增加喚醒進程的搶占幾率,讓對端進程能夠更快的響應(yīng)處理數(shù)據(jù),減少下一輪調(diào)度時的“主動上下文切換”。
對于區(qū)域C而言,m已經(jīng)足夠大,已經(jīng)幾乎不會有“被動上下文切換”發(fā)生,進程會在執(zhí)行完任務(wù)之后進行“主動上下文切換”等待對端進程進行處理,此時 m 對性能的影響就很小了。

5.2 固定 sched_min_granularity_ns

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

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

在區(qū)域A中,同樣存在圖 4 中的現(xiàn)象,較大 m 受 w 的影響較小,而較小的 m 隨著 w 的增大性能會越來越好。
在區(qū)域B中,中等大小的 m(8ms/12ms)進程還是存在較多“被動上下文切換”,并且其中的進程已經(jīng)處理了相當一部分數(shù)據(jù)期望對端進程能夠盡快的響應(yīng)處理,因此較大 w 會嚴重影響中等大小 m 的性能。
在區(qū)域C中圖5和圖4表現(xiàn)一致都是趨于穩(wěn)定,因為 w 過大時幾乎不會發(fā)生喚醒搶占,因此這時單純 w 值的變化對性能的影響并不大,但是過大的 w 對于中等大小的 m 則會造成性能問題(原因同上條)。

5.3 性能趨勢總覽

下面是一個實驗數(shù)據(jù)的熱力總覽圖,來直觀展示 m 和 w 之間的制約關(guān)系,以供需要的同學參考分析。三個區(qū)域和圖 4、圖 5 的區(qū)域會略有不同。

圖 6:總覽圖

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

從上面兩節(jié)的分析可知對于 hackbench 這樣帶有“主動上下文切換”的場景可以選擇較大的 m(例如:15~20ms)。
在pipe/socket 雙向通信的場景中,對端的響應(yīng)時間會對影響進程的下一次處理,為了讓對端進程能夠及時響應(yīng)可以選擇一個中等大小的 w(例如:6~8ms)來獲取較高的性能。

六、思考與擴展

在桌面場景中,應(yīng)用更偏向于交互型,應(yīng)用的服務(wù)質(zhì)量也更多的體現(xiàn)在應(yīng)用對于用戶操作的響應(yīng)時間,因此可以選擇較小的 sched_wakeup_granularity_ns 來提高應(yīng)用的交互性。
在服務(wù)器場景中,應(yīng)用更偏向于計算處理,應(yīng)用需要更多的運行時間來進行密集計算,因此可以選擇較大的 sched_min_granularity_ns,但是為了防止單個進程獨占 CPU 過久同時也為了能夠及時處理客戶端請求響應(yīng),應(yīng)該選擇一個中等大小的 sched_wakeup_granularity_ns。
在 Linux 原生內(nèi)核中 m 和 w 的默認參數(shù)被設(shè)置為適配桌面場景,Anolis OS的用戶,需要根據(jù)自己部署的應(yīng)用的場景,屬于桌面型還是服務(wù)器型,來選擇內(nèi)核參數(shù),或者使用tuned的推薦配置。而 hackbench 作為一個介于桌面和服務(wù)器間的應(yīng)用,也可以作為配置的參考。

 

責任編輯:梁菲 來源: 阿里云云棲號
相關(guān)推薦

2018-05-12 09:32:37

云計算

2018-10-16 09:15:02

區(qū)塊鏈福布斯美聯(lián)社

2016-09-17 11:57:14

手機筆記本臺式機

2024-05-28 14:36:32

AI編碼場景

2012-04-01 09:44:22

云計算云成本

2018-04-26 10:43:28

2021-05-11 09:13:08

服務(wù)器存儲數(shù)據(jù)中心

2015-08-31 10:50:16

跑分手機

2024-03-12 10:32:08

2022-08-09 14:21:27

元宇宙汽車VR/AR

2025-09-04 08:13:00

2021-05-18 15:22:54

AI 數(shù)據(jù)人工智能

2020-08-07 09:14:53

中臺戰(zhàn)略業(yè)務(wù)

2009-09-08 12:00:44

2011-06-29 16:27:26

數(shù)據(jù)中心操作系統(tǒng)

2011-12-12 14:48:29

開放平臺

2015-12-14 09:32:05

DockerMesos開源

2020-05-07 10:53:04

人工智能技術(shù)開發(fā)

2015-06-30 11:04:05

路由器孕婦模式

2020-05-06 18:32:37

人工智能AI制藥
點贊
收藏

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

激情综合网天天干| 亚洲免费av网站| 深夜福利一区二区三区| 欧美日韩免费观看中文| 亚洲成人福利| 欧美日韩专区| 日韩国产小视频| 成人av影院在线观看| 国产午夜精品久久久久久免费视 | 精品网站999www| 亚洲人一区二区| 欧美区国产区| 日本高清视频一区二区三区| 我爱我色成人网| 亚洲国产一区二区a毛片| 天堂在线观看一卡二卡三卡四卡| 日韩一级二级三级| 操欧美女人视频| 国内揄拍国内精品少妇国语| 羞羞答答一区二区| 亚洲精品在线视频| 老司机2019福利精品视频导航| 欧美日韩中文国产| 日本女人一区二区三区| 午夜免费久久久久| 青青草原综合久久大伊人精品 | 亚洲成人一区| 久久理论片午夜琪琪电影网| gratisvideos另类灌满| 亚洲综合色丁香婷婷六月图片| 免费特级黄色片| 亚洲专区一区| 粉嫩av四季av绯色av第一区| 国产精品高潮呻吟久久久久| 久久精品美女视频网站| av在线小说| 精品国产制服丝袜高跟| 高h视频在线观看| 欧美一级搡bbbb搡bbbb| 看女生喷水的网站在线观看| 91电影在线观看| 午夜亚洲成人| 色一区在线观看| 福利视频在线导航| 制服丝袜av成人在线看| 麻豆网在线观看| 日韩精品在线看片z| 尤物网址在线观看| 欧美麻豆精品久久久久久| 黄色电影免费在线看| 欧美日韩一区二区在线视频| 99精品老司机免费视频| 精品福利在线导航| 日韩高清中文字幕一区二区| 一区二区中文字幕| 6080亚洲理论片在线观看| 欧洲亚洲在线视频| 亚洲精品tv久久久久久久久久| 成人三级视频在线观看一区二区| 亚洲精选91| 青青草视频在线视频| 久久久久久久久99精品| heyzo视频在线播放| 欧美日韩在线免费观看| 天天色天天射天天综合网| 国产一区二区三区四区福利| 免费看日产一区二区三区| 欧美裸体bbwbbwbbw| 欧美日韩另类国产亚洲欧美一级| 亚洲国产午夜| 中文精品电影| 国产伦精品一区二区三区照片 | 欧美久久影院| 免费影院在线观看一区 | 91亚洲国产精品| 亚洲深夜影院| 成年人看的毛片| 伊人夜夜躁av伊人久久| 欧美一区二区三区| 黄色片免费在线观看视频| 亚洲欧美国产高清va在线播| 成人春色激情网| 777av视频| 亚洲欧美日本韩国| 黄色网址在线播放| 精品国产免费人成在线观看| 亚洲网站免费| 国产综合福利在线| 日av在线不卡| www.男人的天堂| 日韩欧美国产不卡| 久久黄色影视| 日韩激情久久| 亚洲欧美色图小说| 中文字幕中文字幕在线十八区| 久久久久久久久久久亚洲| 亚洲精品1234| 国产97色在线 | 日韩| 欧美性受极品xxxx喷水| 国产一区二区三区免费在线| 亚洲成人av一区二区三区| 成人激情视频在线| 亚洲卡通欧美制服中文| www久久日com| 色综合久久久久久久久久久| 在线天堂资源| 国产精品自产拍在线观| 国产在线视频不卡二| 久久久亚洲精华液精华液精华液| 亚洲色图校园春色| 亚洲精品网址| 国产极品美女高潮无套久久久| 777午夜精品视频在线播放| 久久久久97| 国产天堂视频在线观看| 91精品免费在线观看| 热久久天天拍国产| 国产一级不卡毛片| 亚洲精品国产综合区久久久久久久 | 欧美猛男男办公室激情| 秋霞影院一区| 亚洲日本欧美在线| 亚洲国产中文字幕在线视频综合| 国语对白做受69| 99热99热| 中文字幕一区不卡| 制服诱惑亚洲| 久久久影院一区二区三区| 亚洲综合视频在线观看| 精品国产麻豆| 91九色丨porny丨国产jk| 精品国产乱码久久久久久免费| 午夜欧美在线| 亚洲伦理电影| 97国产精品久久| 久久久久久久久久美女| xxx欧美xxx| 警花观音坐莲激情销魂小说| 日韩欧美国产综合一区| 99热免费精品| 日韩大片b站免费观看直播| 欧美一区二区三区艳史| 日本一区二区三区免费乱视频| 奇米777日韩| 91传媒免费视频| 欧美mv和日韩mv的网站| 激情亚洲网站| 极品美乳网红视频免费在线观看| 欧美精品久久久久久久久| 国产一区二区三区在线观看免费 | 欧美videos中文字幕| 欧美精品一级| 精品亚洲综合| 俄罗斯精品一区二区三区| 一本色道久久综合精品竹菊| 日韩一区电影| 三级黄视频在线观看| 99re在线观看| 欧美日本韩国一区| 国产精品久久久久毛片大屁完整版| 69久久精品| 亚洲精品成人三区| 亚洲人成网在线播放| 99国产精品国产精品毛片| 高清一区二区三区av| 在线观看国产中文字幕| 国产精品高清在线| 一本久久a久久精品亚洲| 悠悠资源网久久精品| 超鹏97在线| 欧美精品一区二区三区在线| 999日本视频| 91国内精品野花午夜精品| 欧美日韩国产亚洲一区| 成人激情电影在线看| 久久大片网站| 国产丝袜一区视频在线观看| 成人性视频网站| 波多野结衣欧美| 初尝黑人巨炮波多野结衣电影| 国产精品盗摄久久久| 欧美日韩国产专区| 亚洲三级电影在线观看| 激情黄产视频在线免费观看| 福利在线一区二区| 97香蕉久久超级碰碰高清版| 午夜影视日本亚洲欧洲精品| 日韩午夜免费视频| 三上悠亚国产精品一区二区三区| 成人在线免费观看av| 日韩av色在线| 91天堂素人约啪| 91精品国产综合久久精品app| 成人网18免费网站在线| 97视频com| 欧美日韩国产丝袜美女| 日韩视频一区| 视频一区二区视频| 精品三级久久| 亚洲这里只有精品|