精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

談一談Linux讓實(shí)時(shí)/高性能任務(wù)獨(dú)占CPU的事

系統(tǒng) Linux
本文主要討論在高實(shí)時(shí)要求、高效能計(jì)算、DPDK等領(lǐng)域,Linux如何讓某一個(gè)線程排他性獨(dú)占CPU;獨(dú)占CPU涉及的線程、中斷隔離原理;以及如何在排他性獨(dú)占的情況下,甚至讓系統(tǒng)的timer tick也不打斷獨(dú)占任務(wù),從而實(shí)現(xiàn)最低的延遲抖動(dòng)。

[[380984]]

本文主要討論在高實(shí)時(shí)要求、高效能計(jì)算、DPDK等領(lǐng)域,Linux如何讓某一個(gè)線程排他性獨(dú)占CPU;獨(dú)占CPU涉及的線程、中斷隔離原理;以及如何在排他性獨(dú)占的情況下,甚至讓系統(tǒng)的timer tick也不打斷獨(dú)占任務(wù),從而實(shí)現(xiàn)最低的延遲抖動(dòng)。

本文目錄:

1. 工程需求

2. 用戶態(tài)隔離

3. 內(nèi)核態(tài)隔離

3.1 中斷

3.2 內(nèi)核線程

4. 最佳實(shí)踐指南

Part 1工程需求

在一個(gè)SMP或者NUMA系統(tǒng)中,CPU的數(shù)量大于1。在工程中,我們有時(shí)候有一種需求,就是讓某個(gè)能夠獨(dú)占CPU,這個(gè)CPU什么都不做,就只做指定的任務(wù),從而獲得低延遲、高實(shí)時(shí)的好處。

比如在DPDK中,通過設(shè)置

  1. GRUB_CMDLINE_LINUX_DEFAULT=“isolcpus=0-3,5,7” 

隔離CPU0,3,5,7,讓DPDK的任務(wù)在運(yùn)行的時(shí)候,其他任務(wù)不會(huì)和DPDK的任務(wù)進(jìn)行上下文切換,從而保證網(wǎng)絡(luò)性能最佳[1]。在Realtime應(yīng)用場(chǎng)景中,通過isolcpus=2隔離CPU2,然后把實(shí)時(shí)應(yīng)用通過taskset綁定到隔離的核:

  1. taskset-c 2 pn_dev 

從而保證低延遲要求[2]。

Part 2用戶態(tài)隔離

這個(gè)地方,我們可以看出,它們統(tǒng)一都使用了isolcpus這樣一個(gè)啟動(dòng)參數(shù)。

實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),下面我們來啟動(dòng)一個(gè)8核的ARM64系統(tǒng),運(yùn)行Ubuntu,并指定isolcpus=2這個(gè)啟動(dòng)參數(shù):

系統(tǒng)啟動(dòng)后,我們運(yùn)行下面簡(jiǎn)單的程序(啟動(dòng)8個(gè)進(jìn)程運(yùn)行while死循環(huán)):

我們是8核的,現(xiàn)在又是運(yùn)行8個(gè)進(jìn)程,所以理論上來講,負(fù)載均衡后,8個(gè)進(jìn)程應(yīng)該均分地運(yùn)行在8個(gè)核上面,但是我們來看看實(shí)際的htop結(jié)果:

我們發(fā)現(xiàn)3(也就是CPU2)上面的CPU占用率是0.0%。這實(shí)證了CPU2已經(jīng)被隔離,用戶空間的進(jìn)程不能在它上面跑。

當(dāng)然,這個(gè)時(shí)候,我們可以通過taskset,強(qiáng)行把其中的一個(gè)a.out,綁定到CPU2上面去:

從上面命令的結(jié)果看出,663原本的affinity list只有0,1,3-7是沒有2的,而我們強(qiáng)行把它設(shè)置為了2,之后再看htop,CPU2上面占用100%:

通過上面的實(shí)驗(yàn),我們明顯可以看出isolcpus=2使得CPU2上無法再運(yùn)行用戶空間的進(jìn)程了(除非手動(dòng)設(shè)置affinity)。

Part 3內(nèi)核態(tài)隔離

中斷

但是,能在CPU2上面運(yùn)行的,不是只有用戶態(tài)的任務(wù),還可以有內(nèi)核線程、中斷等,那么isolcpus=能否隔離內(nèi)核線程和中斷呢?

對(duì)于中斷,我們特別容易查看,就是實(shí)際去驗(yàn)證每個(gè)IRQ的smp_affinity就好了:

從上圖明顯可以看出,對(duì)于44、47號(hào)這種外設(shè)的中斷,Linux內(nèi)核把smp_affinity設(shè)置為了FB(11111011),明顯避開了CPU2,所以,實(shí)際外設(shè)中斷也不會(huì)在CPU2發(fā)生,除非我們強(qiáng)行給中斷綁核,比如讓44號(hào)中斷綁定到CPU2:

  1. echo 2 >/proc/irq/44/smp_affinity_list 

之后,我們發(fā)現(xiàn)44號(hào)中斷在CPU2可以發(fā)生:

但是,系統(tǒng)的timer中斷、IPI,由于是Linux系統(tǒng)的運(yùn)行基石,實(shí)際還是要在CPU2上面運(yùn)行的。這里面最可能給任務(wù)帶來延遲抖動(dòng)的,自然是timer tick。

下面我們重點(diǎn)探討下tick的問題,由于Linux一般情況下,已經(jīng)配置IDLE狀態(tài)的NO_HZ tickless,所以CPU2上面什么都不跑的時(shí)候,實(shí)際timer中斷幾乎不發(fā)生。

下面,我們還是在isolcpus=2的情況下,運(yùn)行前面那個(gè)8個(gè)進(jìn)程的a.out,默認(rèn)情況下沒有任務(wù)會(huì)占用CPU2。通過先后運(yùn)行幾次cat /proc/interrupts | head 2,我們會(huì)看到其他core的timer中斷頻繁發(fā)生,而CPU2幾乎不變,這顯然是IDLE時(shí)候的NO_HZ在發(fā)揮省電的作用:

但是,一旦我們放任務(wù)到CPU2,哪怕只是放1個(gè),就會(huì)發(fā)現(xiàn)CPU2上面的timer中斷開始增加:

這說明一點(diǎn),哪怕隔離的CPU上面只有一個(gè)線程去跑,timer tick就會(huì)開始跑,當(dāng)然,這個(gè)timer tick也會(huì)頻繁打斷這一個(gè)線程,從而造成大量的上下文切換。你肯定會(huì)覺得Linux怎么這么傻,既然只有一個(gè)人,那也沒有時(shí)間片分片的必要,不需要在2個(gè)或者多個(gè)任務(wù)進(jìn)行時(shí)間片劃分地調(diào)度,為啥還要跑tick?其實(shí)原因是我們的內(nèi)核默認(rèn)只是使能了IDLE的NO_HZ:

我們來重新編譯一個(gè)內(nèi)核,使能NO_HZ_FULL:

當(dāng)我們使能了NO_HZ_FULL后,Linux支持在CPU上僅有1個(gè)任務(wù)的時(shí)候,是可以NO_HZ的。但是有2個(gè)就傻眼了,所以這個(gè)“FULL”也不是真地FULL[3]。這當(dāng)然也可以理解,因?yàn)橛?個(gè)就涉及到時(shí)間片調(diào)度的問題。什么時(shí)候應(yīng)該使能NO_HZ_FULL,內(nèi)核文檔Documentation/timers/no_hz.rst有明確地“指示”,只有在實(shí)時(shí)和HPC等的場(chǎng)景,才需要,否則默認(rèn)的NO_HZ_IDLE是你最好的選擇:

我們重新編譯了內(nèi)核,選中了NO_HZ_FULL,下面啟動(dòng)Linux,注意啟動(dòng)的時(shí)候參數(shù)添加nohz_full=2,讓CPU2支持NO_HZ_FULL:

重新運(yùn)行CPU2只有一個(gè)任務(wù)的場(chǎng)景,看看它的timer中斷發(fā)生情況:

發(fā)現(xiàn)CPU2上面的tick穩(wěn)定在188上面,這樣相信你會(huì)更加開心,因?yàn)槟悛?dú)占地更加徹底了!

下面,我們?cè)俜乓粋€(gè)task進(jìn)去CPU2,有2個(gè)任務(wù)的情況下,CPU2上面的timer tick開始增加:

不過,這或許不是個(gè)問題,因?yàn)槲覀冋f好了“獨(dú)占”,1個(gè)任務(wù)獨(dú)占的時(shí)候,timer tick不來打擾,應(yīng)該已經(jīng)是非常理想的情況了!

內(nèi)核態(tài)線程

內(nèi)核態(tài)的線程其實(shí)和用戶態(tài)差不多,當(dāng)它們沒有綁定到隔離的CPU的時(shí)候,是不會(huì)跑到隔離CPU運(yùn)行的。下面用筆者在內(nèi)核里面添加的dma_map_benchmark來做實(shí)驗(yàn)[4],開啟16個(gè)內(nèi)核線程來進(jìn)行DMA map和unmap(注意我們只有8個(gè)核):

  1. ./dma_map_benchmark -s 120 -t 16 

我們看到CPU2上面的CPU占用也是0:

內(nèi)核里面的dma_map_benchmark線程在狂占CPU0-1, 3-7,但是就是不去占CPU2:

但是,內(nèi)核線程如果用kthread_bind_mask()類似API把線程綁定到了隔離的CPU,則情況就不一樣了,這就類似用taskset把用戶態(tài)的任務(wù)綁定到CPU一樣。

Part 4最佳實(shí)踐指南

對(duì)于實(shí)時(shí)性要求高、高性能計(jì)算等場(chǎng)景,如果要讓某個(gè)任務(wù)獨(dú)占CPU,最理想的選擇是:

1. 采用isolcpus隔離CPU

2. 將指定任務(wù)綁定到隔離CPU

3. 小心意外地把中斷、內(nèi)核線程綁定到了隔離CPU,排查到這些“意外”分子

4. 使能NO_HZ_FULL,則效果更佳,因?yàn)檫Btimer tick中斷也不打擾你了。

參考文獻(xiàn)

[1]http://doc.dpdk.org/spp-18.02/setup/performance_opt.html

[2]https://rt-labs.com/docs/p-net/linuxtiming.html

[3]https://lwn.net/Articles/549580/

[4]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=65789daa80

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7679325702

本文轉(zhuǎn)載自微信公眾號(hào)「Linux閱碼場(chǎng)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Linux閱碼場(chǎng)公眾號(hào)。

 

 

責(zé)任編輯:武曉燕 來源: Linux閱碼場(chǎng)
相關(guān)推薦

2015-03-27 15:07:55

云計(jì)算IaaS平臺(tái)Docker

2023-11-01 11:51:08

Linux性能優(yōu)化

2021-11-23 09:45:26

架構(gòu)系統(tǒng)技術(shù)

2024-03-18 13:43:20

Linux架構(gòu)

2021-02-19 09:19:11

消息隊(duì)列場(chǎng)景

2018-08-21 14:42:29

閃存存在問題

2021-07-28 20:12:17

WindowsHeap內(nèi)存

2023-11-01 11:59:13

2022-02-14 22:22:30

單元測(cè)試Junit5

2023-11-01 10:38:46

Linux高性能網(wǎng)絡(luò)編程

2023-11-01 11:40:46

Linux高性能網(wǎng)絡(luò)編程工具

2023-11-01 10:58:31

系統(tǒng)調(diào)用高性能網(wǎng)絡(luò)編程Linux

2023-11-01 11:27:10

Linux協(xié)程

2022-07-04 10:51:27

數(shù)據(jù)中臺(tái)數(shù)據(jù)倉庫

2014-07-17 10:11:53

Android LAPI谷歌

2022-11-10 08:16:19

java性能服務(wù)性能

2021-05-11 08:48:23

React Hooks前端

2017-11-21 14:32:05

容器持久存儲(chǔ)

2016-07-08 13:33:12

云計(jì)算

2020-12-04 11:40:53

Linux
點(diǎn)贊
收藏

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

国产一区二区三区黄视频 | 91sao在线观看国产| av噜噜色噜噜久久| japanese中文字幕| 超碰免费在线播放| 国产精品一区二区男女羞羞无遮挡| 久久亚洲精品国产亚洲老地址| 欧美日韩一区二区区别是什么 | 97av在线播放| 日韩视频在线观看免费视频| 日韩精品成人在线观看| 欧美性高潮床叫视频| 一区在线电影| 色播色播色播色播色播在线| 裸体在线国模精品偷拍| 欧美精品video| 欧美成人福利在线观看| 色爱综合区网| 国产在线一区二区综合免费视频| 国产综合在线视频| 成人性生交大片免费看无遮挡aⅴ| 日韩精品中文字幕一区二区 | 久久久久久av无码免费看大片| 91精品动漫在线观看| 亚洲免费视频网站| 国产成人精品综合久久久久99| 日本久久免费| 性感美女极品91精品| 亚洲最大av网| 中文字幕在线天堂| 欧美日本成人| 精品国产免费人成在线观看| 亚洲最大天堂网| www.精品| 欧美日韩激情视频8区| 超薄肉色丝袜足j调教99| 国产又粗又猛又爽又黄的| 国产一级久久| 色在人av网站天堂精品| 天美传媒免费在线观看| 欧美日韩导航| 精品电影一区二区三区| 韩国一区二区在线播放| 搜成人激情视频| 一本一道综合狠狠老| 99精品人妻少妇一区二区| 国产99在线| 天天色 色综合| 黄色国产一级视频| 999av小视频在线| 久久久久久久综合日本| 国产一区二区免费电影| 亚洲精品久久久久久动漫器材一区| 久久国产综合精品| 国产精品一区二区3区| 中文字幕天堂在线| 人人狠狠综合久久亚洲| 国产精品久久久久久久久| 五月激情丁香网| 免费观看在线综合| 91精品久久久久| 中文字幕在线观看1| 久久国产精品免费| 国产精品一区二区久久精品| 一本到在线视频| 韩国精品免费视频| 91免费看蜜桃| 污污视频在线观看网站| 26uuu国产日韩综合| 国产美女精彩久久| 中文资源在线播放| 青青草成人在线观看| 国产精品一区二区电影| 国产又粗又黄又爽视频| 国内综合精品午夜久久资源| 欧美激情精品久久久久久免费印度| 国产性xxxx| 国产日产精品一区二区三区四区的观看方式| 日韩h在线观看| 99久久精品免费视频| 日本久久黄色| 欧美成人免费小视频| 日干夜干天天干| 视频在线观看91| 欧美激情在线播放| www.com国产| 美国三级日本三级久久99| 91网站在线免费观看| 国产成人三级在线观看视频| 国产亚洲自拍一区| 伊人久久婷婷色综合98网| 日本h片在线观看| 色婷婷久久久久swag精品| 五月天婷婷亚洲| 女人抽搐喷水高潮国产精品| 国产亚洲欧美日韩精品| 永久免费看黄网站| 久久亚洲电影| 99久久无色码| 91美女视频在线| 亚洲成人综合视频| 久久撸在线视频| 加勒比视频一区| 久久国内精品一国内精品| 日韩精品成人在线| 久草中文综合在线| 精品国产综合区久久久久久| 成人黄色在线电影| 色综合久久99| 中文字幕在线永久| 国产精品99视频| 日韩免费观看网站| 亚洲美女性生活| 国产精品久久久久三级| 精品国产一二三四区| 国产精品视频一区视频二区| 亚洲女人天堂成人av在线| 草视频在线观看| 日本美女一区二区三区视频| 国产一区二区免费在线观看| yellow91字幕网在线| 色婷婷久久99综合精品jk白丝| 免费黄色在线播放| 外国成人免费视频| 国产精品久久9| 五月天婷婷在线播放| 亚洲免费av高清| 制服丝袜综合网| 台湾色综合娱乐中文网| 欧美激情乱人伦| 国产视频第一页| 国产精品麻豆视频| 99视频免费播放| 欧美日韩一区二区三区四区不卡 | 制服丝袜中文字幕亚洲| 欧美黄色一级片视频| 伊人精品综合| 萌白酱国产一区二区| 欧美视频xxxx| 国产欧美一区二区精品秋霞影院| 日韩欧美国产综合在线| 日韩欧洲国产| 欧美成人精品三级在线观看| 97人妻一区二区精品免费视频 | 日韩精品一区国产麻豆| 潮喷失禁大喷水aⅴ无码| 老**午夜毛片一区二区三区| 免费亚洲精品视频| videos性欧美另类高清| 亚洲色图第一页| 成年人视频在线免费看| 久久日一线二线三线suv| 国产一区二区在线视频播放| 精品精品国产毛片在线看| 久久久久久亚洲精品中文字幕| 亚洲精品视频网| 亚洲成av人片一区二区| 久久人人妻人人人人妻性色av| 激情视频一区| 精品一区二区日本| 最新日韩精品| 亚洲精品短视频| 麻豆久久久久久久久久| 337p粉嫩大胆色噜噜噜噜亚洲| 俄罗斯av网站| 国产精品一线天粉嫩av| 国产精品视频内| 亚洲男人第一天堂| 亚洲成人av免费| 日韩网站在线播放| 三级久久三级久久| 亚洲成人网上| 榴莲视频成人app| 亚洲视频axxx| 中文字幕+乱码+中文乱码www | 天堂资源在线亚洲视频| 在线观看中文| 亚洲成av人片在线观看香蕉| 免费黄色在线网址| 久久99热这里只有精品| 妞干网在线播放| 猛男gaygay欧美视频| 国产精品视频专区| 欧美videosex性极品hd| 日韩精品在线观看一区| 亚洲图片中文字幕| 亚洲午夜电影在线观看| 人妻大战黑人白浆狂泄| 国产在线日韩欧美| 99精品人妻少妇一区二区| 欧美oldwomenvideos| 成人在线视频电影| av有声小说一区二区三区| 久久精品这里热有精品| 欧美 日韩 综合| 欧美日韩不卡在线| 日韩乱码一区二区| 自拍偷在线精品自拍偷无码专区| 2一3sex性hd| 蜜臀av一区二区在线免费观看| 久久香蕉视频网站| 精品一区二区三| 国产成人精品免费视频大全最热| 电影一区二区三区| 色综合视频一区中文字幕| 久青草国产在线| 精品国产一区二区三区不卡 | 欧美精品1区2区3区| 国产免费观看av| 亚洲男人的天堂一区二区| 老司机福利av| 国产.精品.日韩.另类.中文.在线.播放| 久久精品99国产| 欧美日韩p片| 在线看无码的免费网站| 香蕉视频一区二区三区| y111111国产精品久久婷婷| 成人国产精选| 91a在线视频| 日本乱理伦在线| 日韩在线观看免费全| 国产69精品久久app免费版| 亚洲成人精品在线| 国产毛片在线视频| 欧美日本韩国一区| 中文字幕+乱码+中文乱码www| 精品久久久久久亚洲精品| 久久久精品视频在线| 亚洲视频在线观看三级| 成熟人妻av无码专区| 久久久久久日产精品| 中文字幕影片免费在线观看| 成人国产精品免费观看| 性折磨bdsm欧美激情另类| 国产在线国偷精品产拍免费yy | 亚洲国产尤物| 欧美在线免费观看| 麻豆成全视频免费观看在线看| 欧美肥婆姓交大片| 天天色天天射天天综合网| 久久精品小视频| 国产网站在线免费观看| 日韩亚洲成人av在线| 一级毛片视频在线| 中文字幕无线精品亚洲乱码一区 | 亚洲天堂av线| 日精品一区二区三区| 激情婷婷综合网| 日韩高清欧美激情| 污色网站在线观看| 久久国内精品视频| 日本美女视频一区| 国产综合久久久久久久久久久久| www.国产视频.com| 国产一区在线观看麻豆| 中文字幕第66页| 国产精品乡下勾搭老头1| 日本人妻一区二区三区| 成人免费毛片嘿嘿连载视频| xxxxxx黄色| 久久精品欧美一区二区三区麻豆| 亚洲成人网在线播放| 国产精品水嫩水嫩| 色老板免费视频| 亚洲精品一卡二卡| 国产一级特黄aaa大片| 欧美视频在线免费看| 久久久国产免费| 欧美电影一区二区| 欧美熟妇另类久久久久久不卡| 亚洲国产精品高清久久久| 国产最新视频在线| 久久亚洲影音av资源网| av中文在线资源库| 国产精品678| 国产一区二区三区视频在线| 成人黄动漫网站免费| 天堂综合网久久| 亚洲三区在线| 影音先锋久久资源网| 亚洲爆乳无码专区| 国产最新精品免费| 亚洲视频 中文字幕| 国产亚洲精品免费| 唐朝av高清盛宴| 91精品91久久久中77777| 国产又黄又粗又长| 精品视频在线播放免| 秋霞午夜在线观看| 午夜免费在线观看精品视频| 亚洲成人不卡| yellow视频在线观看一区二区| 亚洲人成网亚洲欧洲无码| 亚洲一区二区在| 亚洲激情精品| 亚洲综合欧美在线| 99精品国产一区二区三区不卡| 极品蜜桃臀肥臀-x88av| 亚洲一区二区三区在线看| 在线观看日本网站| 一区2区3区在线看| 成人公开免费视频| 日韩一级片在线播放| 免费毛片在线| 久久久久久国产精品美女| 国产69精品久久久久9999人| 国产一区二区中文字幕免费看 | 久久福利一区二区| 日韩国产欧美在线播放| 香蕉视频污视频| 18欧美亚洲精品| aaa在线视频| 亚洲成人1234| 国产理论在线观看| 国产精品久久久久久久久久ktv| 精品少妇3p| 日韩久久久久久久久久久久| 久久综合综合久久综合| 巨胸大乳www视频免费观看| 亚洲一区二区三区在线| 国产又大又长又粗| 日韩在线视频观看| 性感美女一区二区在线观看| 精选一区二区三区四区五区| 欧美视频在线观看| www,av在线| 欧美高清在线视频| 免费精品一区二区| 亚洲欧美中文日韩在线| 松下纱荣子在线观看| 精品国产aⅴ麻豆| 欧美三级免费| 日本女人性视频| 亚洲日本青草视频在线怡红院| 91 中文字幕| 中文字幕欧美日韩在线| 视频一区在线免费看| 欧美日韩中文国产一区发布| 日韩在线观看一区| 超碰10000| 国产在线播放一区三区四| 成人一级黄色大片| 欧美日韩激情一区二区| av小片在线| 国产欧美日韩精品在线观看| 成人免费看片39| 国产区二区三区| 成人在线一区二区三区| 久久99久久98精品免观看软件| 欧美一区二区三区日韩视频| 麻豆传媒在线观看| 亚洲aa中文字幕| 欧美视频四区| 免费黄色三级网站| 日韩欧美国产激情| 国内三级在线观看| 国产精品男人的天堂| 日本a口亚洲| 特黄特黄一级片| 亚洲综合激情另类小说区| 亚洲欧美高清视频| 91精品成人久久| 国产免费久久| 免费一级特黄录像| 亚洲品质自拍视频| 午夜精品小视频| 久久久综合av| 国产亚洲一区| 污污网站在线观看视频| 亚洲黄色小说网站| 国产 欧美 精品| 日本精品久久电影| 日韩av自拍| 黑人无套内谢中国美女| 亚洲一二三级电影| 久草视频视频在线播放| 成人妇女淫片aaaa视频| 欧美视频一区| 五月天精品视频| 欧美裸体bbwbbwbbw| 男女羞羞视频在线观看| 免费在线观看一区二区| 美女在线一区二区| 免费一级片在线观看| 亚洲老司机av| 国产在线视频欧美一区| 97国产在线播放| 中文字幕中文字幕中文字幕亚洲无线| 亚洲国产精品18久久久久久| 欧美亚洲在线播放| 91精品国产91久久久久久密臀| 国产白袜脚足j棉袜在线观看| 欧美在线观看一区二区| a视频在线免费看| 久久久久资源| 国产伦精品一区二区三区视频青涩 | 亚洲精品黑牛一区二区三区| 中国丰满人妻videoshd| 亚洲视频1区2区| 三级视频在线|