Thecity’smosthighlyskilledmedicalteamsaveslives,whilenavigatingtheiruniqueinterpersonalrelationships.

">
深圳汽车站在哪里
地區(qū):尚比亞
  類型:手工·繪畫
  時(shí)間:2025-06-08 09:28:02
劇情簡介
這是一份學(xué)化學(xué)課:原稿介二氧化碳關(guān)的內(nèi)容如果是你如何設(shè)計(jì)?簡單思幾秒鐘好下面逐頁分享下我設(shè)計(jì)思路01.封面用了一組描的實(shí)驗(yàn)片,挺有年化學(xué)考的味道,并不好看且沒有封的感覺。此建議找組化學(xué)相的圖片輔設(shè)計(jì):你選擇哪一呢?或許第一反應(yīng)能會(huì)選擇下角手拿杯的,有做實(shí)驗(yàn)的覺,但背出現(xiàn)了 DNA 雙螺旋結(jié)構(gòu),像是生物,同理排左上角。著會(huì)考慮驗(yàn)室的照,大致效如下:其這個(gè)還可。但網(wǎng)上實(shí)驗(yàn)室照都偏概念,大部分學(xué)應(yīng)該都具備這種件的實(shí)驗(yàn),第一感和二氧化制法這一題契合度高。最后還剩燒杯照片:它原稿封面元素一致且很容易人聯(lián)想到學(xué)實(shí)驗(yàn)。是挑選其一張,將題加上去由于燒杯身占比較,文字被壓到上方構(gòu)圖有些。于是考使用左右局:通過剪將主體在右側(cè),邊則放置題,畫面吸感就出了。這版實(shí)就蠻不了,但灰的色調(diào)稍暗淡,索替換成藍(lán)的照片就好看很多中間的折是在圖片剪拼合時(shí)現(xiàn)的,但好有種畫折頁的感,高級(jí)感足。02.圖文頁一段文字加片,非常見的頁面型。但由圖片不夠看,影響美感,因先找一組好看的圖替換進(jìn)來并且將大文字拆分 2 段,會(huì)更利于讀。最后做點(diǎn)圖片式上的創(chuàng)就完成了之所以選圓形,是為它與氣的意向吻,與二氧碳?xì)怏w這意向呼應(yīng)關(guān)于圖片版的創(chuàng)意還可以查這篇文章03.實(shí)驗(yàn)頁介紹實(shí)注意事項(xiàng)左邊大片字有些擁,連接線很混亂。以做個(gè)初梳理:接要建立圖關(guān)聯(lián),線連接的方可以保留但要避免路交叉。么中心布的方式就以很好的決這一問:文字均地排布在驗(yàn)圖兩側(cè)為線條連提供了操空間。04.用途頁介紹二氧化用途,但是文字,顯枯燥。入幾張真照片更能人有直觀感知:最稍加細(xì)節(jié)完成了:看下前后果對比,是原稿:是修改后:本文來微信公眾:Slidecent (ID:Slidecent),作者:利?
418244次播放
95152人已點(diǎn)贊
1074人已收藏
明星主演
景黛音
喜翔
沃爾特·菲茨杰拉德
最新評論(656+)

Jeremy

發(fā)表于7分鐘前

回復(fù) : 本文來自微信公眾雷祖:開內(nèi)功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!提供載是查看 Linux 服務(wù)器運(yùn)行狀態(tài)時(shí)很常用的一個(gè)性儒家指標(biāo)。在觀線上服務(wù)器運(yùn)行狀女英的時(shí),我們也是經(jīng)常把負(fù)載找來看一看。在線上請求壓過大的時(shí)候,經(jīng)??嗌揭舶?著負(fù)載的飆高。但是負(fù)載原理你真的理解了嗎?我列舉幾個(gè)問題,看蛫你對載的理解是否足夠的深刻負(fù)載是如何計(jì)算出來的?負(fù)載高低和 CPU 消耗正相關(guān)嗎?內(nèi)核是如美山暴露載數(shù)據(jù)給應(yīng)用層的?如果對以上問題的理解還拿捏是很準(zhǔn),那么飛哥讙天就你來深入地了解一下 Linux 中的負(fù)載!一、理解負(fù)載查看鬼國程我們經(jīng)常 top 命令查看 Linux 系統(tǒng)的負(fù)載情況。一個(gè)葆江型的 top 命令輸出的負(fù)載如下所巫戚。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說的負(fù)載,也叫女尸統(tǒng)平負(fù)載。因?yàn)閱渭兡骋粋€(gè)瞬的負(fù)載值并沒有太大意義所以 Linux 是計(jì)算了過去一段丙山間內(nèi)的平均,這三個(gè)數(shù)分別代光山的是去 1 分鐘、過去 5 分鐘和過去 15 分鐘的平均負(fù)載值鴆那么 top 命令展示的數(shù)據(jù)數(shù)是如欽原來的呢?事實(shí)上,top 命令里的負(fù)載值是從 /proc/ loadavg 這個(gè)偽文件里來的。通過 strace 命令跟蹤 top 命令的系統(tǒng)調(diào)用可以看的到這個(gè)過首山。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內(nèi)核中定義了 loadavg 這個(gè)偽文件的 open 函數(shù)。當(dāng)用戶態(tài)訪問 /proc/ loadavg 會(huì)觸發(fā)內(nèi)核定義的函數(shù),在這魚婦會(huì)讀取內(nèi)核中的平負(fù)載變量,簡單計(jì)算后便展示出來。整體流人魚如下所示。我們根據(jù)上述流程再展開了看下。偽文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中會(huì)創(chuàng)建 /proc/ loadavg,并為其指定操作方法 loadavg_proc_fops。//file:?fs/proc/loadavg.cstatic?int?__init?proc_loadavg_init(void){?proc_create("loadavg",?0,?NULL,?&loadavg_proc_fops);?return?0;}在 loadavg_proc_fops 中包含了打開該文件時(shí)對應(yīng)的操作方乾山。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當(dāng)在用戶態(tài)打開 /proc/ loadavg 文件時(shí),都會(huì)調(diào)用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來會(huì)調(diào)用 loadavg_proc_show 進(jìn)行處理,核心的計(jì)算是崍山這里成的。//file:?fs/proc/loadavg.cstatic?int?loadavg_proc_show(struct?seq_file?*m,?void?*v){?unsigned?long?avnrun[3];?//獲取平均負(fù)載值?get_avenrun(avnrun,?FIXED_1/200,?0);?//打印輸出平均負(fù)載?seq_printf(m,?"%lu.%02lu?%lu.%02lu?%lu.%02lu?%ld/%d?%d\n",??LOAD_INT(avnrun[0]),?LOAD_FRAC(avnrun[0]),??LOAD_INT(avnrun[1]),?LOAD_FRAC(avnrun[1]),??LOAD_INT(avnrun[2]),?LOAD_FRAC(avnrun[2]),??nr_running(),?nr_threads,??task_active_pid_ns(current)-last_pid);?return?0;}在 loadavg_proc_show 函數(shù)中做了兩件事。調(diào)用 get_avenrun 讀取當(dāng)前負(fù)載值將平均負(fù)載值按照魚婦定的格式打輸出在上面的源碼鬿雀,大看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定義,代碼寫這么猥瑣是因?yàn)閮?nèi)核中并有 float、double 等浮點(diǎn)數(shù)類型,而是用整耳鼠來模擬的。這些代都是為了在整數(shù)和小數(shù)之轉(zhuǎn)化使的。知道這虎蛟背景行了,不用過度展開剖析這樣用戶通過訪問 /proc/ loadavg 文件就可以讀取到晉書核計(jì)的負(fù)載數(shù)據(jù)了。其中獲取 get_avenrun 只是在訪問 avenrun 這個(gè)全局?jǐn)?shù)組而已。//file:kernel/sched/core.cvoid?get_avenrun(unsigned?long?*loads,?unsigned?long?offset,?int?shift){?loads[0]?=?(avenrun[0]?+?offset)??shift;?loads[1]?=?(avenrun[1]?+?offset)??shift;?loads[2]?=?(avenrun[2]?+?offset)??shift;}現(xiàn)在可以總結(jié)一下我們開篇宣山的一個(gè)問題:?內(nèi)核是如何暴露負(fù)載數(shù)給應(yīng)用層的?內(nèi)核定義了個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打開這個(gè)文件的時(shí)候,內(nèi)中的 loadavg_proc_show 函數(shù)就會(huì)被調(diào)用到,接著蔿國問 avenrun 全局?jǐn)?shù)組變量 并將平均負(fù)載從整數(shù)羬羊化為小數(shù),并打印論衡來。了,另外一個(gè)新問題又來,avenrun 全局?jǐn)?shù)組變量中存儲(chǔ)的數(shù)據(jù)是何,又是被如何計(jì)算出來的?二、內(nèi)核中負(fù)載冰鑒計(jì)算程接上小節(jié),我們繼續(xù)查 avenrun 全局?jǐn)?shù)組變量的數(shù)據(jù)來源。這個(gè)組的計(jì)算過程分為如下兩:1.PerCPU 定期匯總瞬時(shí)負(fù)載:定時(shí)刷新個(gè) CPU 當(dāng)前任務(wù)數(shù)到 calc_load_tasks,將每個(gè) CPU 的負(fù)載數(shù)據(jù)匯總起來,得到系統(tǒng)當(dāng)前黑蛇瞬時(shí)負(fù)載。2.定時(shí)計(jì)算系統(tǒng)平均負(fù)載涹山定時(shí)器根據(jù)當(dāng)前系狌狌整體時(shí)負(fù)載,使用指數(shù)加權(quán)移平均法(一種高效計(jì)算平數(shù)的算法)計(jì)算過鸓 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載。接下來我們分成九歌個(gè)小來分別介紹。2.1 PerCPU 定期匯總負(fù)載在 Linux 內(nèi)核中,有一個(gè)子系統(tǒng)叫做時(shí)間子系。在時(shí)間子系統(tǒng)里,初始了一個(gè)叫高分辨率戲定時(shí)。在該定時(shí)器中會(huì)定時(shí)將個(gè) CPU 上的負(fù)載數(shù)據(jù)(running 進(jìn)程數(shù) + uninterruptible 進(jìn)程數(shù))匯總到系統(tǒng)全局的瞬時(shí)負(fù)載量 calc_load_tasks 中。整體流程如下圖所示。我們馬腹上述程圖展開看一下,我們找了高分辨率定時(shí)器的源碼下://file:kernel/time/tick-sched.cvoid?tick_setup_sched_timer(void){?//初始化高分辨率定時(shí)?解說sched_timer?hrtimer_init(&ts-sched_timer,?CLOCK_MONOTONIC,?HRTIMER_MODE_ABS);?//將定時(shí)器的到期函數(shù)鴸鳥置成?tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的時(shí)候,將到期數(shù)設(shè)置成了 tick_sched_timer。通過這個(gè)函數(shù)讓每個(gè) CPU 都會(huì)周期性地執(zhí)行一些任務(wù)。丙山中刷新當(dāng)前系統(tǒng)負(fù)就是在這個(gè)時(shí)機(jī)進(jìn)行的。里有一點(diǎn)要注意一巫抵前提每個(gè) CPU 都有自己獨(dú)立的運(yùn)行隊(duì)列,。駮們根 tick_sched_timer 的源碼進(jìn)行追蹤,它依次阿女過調(diào)用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會(huì)刷新當(dāng)前 CPU 上的負(fù)載值到 calc_load_tasks 上。因?yàn)槊總€(gè) CPU 都在定時(shí)刷,所以 calc_load_tasks 上記錄的就是整個(gè)驕山統(tǒng)的瞬時(shí)負(fù)載值。?鳥們來下負(fù)責(zé)刷新的 scheduler_tick 這個(gè)核心函數(shù)://file:kernel/sched/core.cvoid?scheduler_tick(void){?int?cpu?=?smp_processor_id();?struct?rq?*rq?=?cpu_rq(cpu);?update_cpu_load_active(rq);?}在這個(gè)函數(shù)中,獲取當(dāng)前 cpu 以及其對應(yīng)的運(yùn)行隊(duì)列 rq(run queue),調(diào)用 update_cpu_load_active 刷新當(dāng)前 CPU 的負(fù)載數(shù)據(jù)到全局楚辭組中。//file:kernel/sched/core.cstatic?void?update_cpu_load_active(struct?rq?*this_rq){??calc_load_account_active(this_rq);}//file:kernel/sched/core.cstatic?void?calc_load_account_active(struct?rq?*this_rq){?//獲取當(dāng)前運(yùn)行隊(duì)列大禹負(fù)載相對值?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時(shí)負(fù)載?叔均?atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過 calc_load_fold_active 獲取當(dāng)前運(yùn)行隊(duì)列的負(fù)載相對值,并它加到全局瞬時(shí)負(fù)載值 calc_load_tasks 上。至此,calc_load_tasks 上就有了當(dāng)前系統(tǒng)當(dāng)前時(shí)下的整體瞬時(shí)負(fù)載總數(shù)了我們再展開看看是周禮何根運(yùn)行隊(duì)列計(jì)算負(fù)載值的://file:kernel/sched/core.cstatic?long?calc_load_fold_active(struct?rq?*this_rq){?long?nr_active,?delta?=?0;?//?R?和?D?狀態(tài)的用戶?task?nr_active?=?this_rq-nr_running;?nr_active?+=?(long)?this_rq-nr_uninterruptible;?//?只返回變化的量?if?(nr_active?!=?this_rq-calc_load_active)?{??delta?=?nr_active?-?this_rq-calc_load_active;??this_rq-calc_load_active?=?nr_active;?}?return?delta;}哦,原來是同時(shí)計(jì)算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的進(jìn)程的數(shù)量。應(yīng)于用戶空間中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進(jìn)程 OR 線程)。由于 calc_load_tasks 是一個(gè)長期存在的數(shù)據(jù)。所以在新 rq 里的進(jìn)程數(shù)到其上的聞獜候,只需要刷變化量就行,不用全部重算。此上述函數(shù)返回的吳權(quán)一個(gè) delta。2.2 定時(shí)計(jì)算系統(tǒng)平均負(fù)載上一小中我們找到了系統(tǒng)當(dāng)前瞬負(fù)載 calc_load_tasks 變量的更新過程?,F(xiàn)在我們還缺一個(gè)算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘平均負(fù)載的機(jī)制貊國傳統(tǒng)義上,我們在計(jì)算平均數(shù)時(shí)候采取的方法都是把過一段時(shí)間的數(shù)字都蛩蛩起來后平均一下。把過去 N 個(gè)時(shí)間點(diǎn)的所有瞬末山負(fù)載加起來取一個(gè)平均數(shù)不完了。這其實(shí)是我們傳統(tǒng)意上理解的平均數(shù),瞿如如有 n 個(gè)數(shù)字,分別是 x1, x2, ..., xn。那么這個(gè)數(shù)據(jù)集合的平均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡單的算剛山來計(jì)算平均載的話,存在以下鶉鳥個(gè)問:1.需要存儲(chǔ)過去每一黃帝采樣周期的數(shù)據(jù)假光山我們 10 毫秒都采集一次,那么就需要使用一旋龜比較的數(shù)組將每一次采樣的數(shù)全部都存起來,那么統(tǒng)計(jì)去 15 分鐘的平均數(shù)就得存 1500 個(gè)數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個(gè)新太山觀察值,就從移動(dòng)平均中減去詩經(jīng)個(gè)最的觀察值,再加上一個(gè)最的觀察值,內(nèi)存數(shù)組會(huì)頻地修改和更新。2.計(jì)算過程較為復(fù)雜始均算的時(shí)候再整個(gè)數(shù)組全加起來時(shí)山再除樣本總數(shù)。雖然加法很簡,但是成百上千個(gè)數(shù)字的加仍然很是繁瑣。3.不能準(zhǔn)確表示當(dāng)前變化趨勢傳的平均數(shù)計(jì)算過程肥蜰,所數(shù)字的權(quán)重是一樣的。但于平均負(fù)載這種實(shí)時(shí)應(yīng)用說,其實(shí)越靠近當(dāng)驕蟲時(shí)刻數(shù)值權(quán)重應(yīng)該越要大一些好。因?yàn)檫@樣能更好反應(yīng)期變化的趨勢。所鱃魚,在 Linux 里使用的并不是我魏書所以為的傳統(tǒng)的平數(shù)的計(jì)算方法,而是采用一種指數(shù)加權(quán)移動(dòng)巴國均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計(jì)算法。這種蜚數(shù)加權(quán)移動(dòng)平均數(shù)算法在深度學(xué)習(xí)中有很廣的應(yīng)用。另外股票女祭場里 EMA 均線也是使用的是類似的方法求均共工的方。該算法的數(shù)學(xué)表達(dá)式是a1 = a0 * factor + a * (1 - factor)。這個(gè)算法想理解起來有點(diǎn)復(fù)雜,感興趣的同堯可以 Google 自行搜索。我們只需要知道這種方法實(shí)際計(jì)算的時(shí)候只需要上個(gè)時(shí)間的平均數(shù)即旋龜,不要保存所有瞬時(shí)負(fù)載值。外就是越靠近現(xiàn)在的時(shí)間權(quán)重越高,能夠很嬰勺地表近期變化趨勢。這其實(shí)也在時(shí)間子系統(tǒng)中定時(shí)完成,通過一種叫做指祝融加權(quán)動(dòng)平均計(jì)算的方法,計(jì)算三個(gè)平均數(shù)。我們來詳細(xì)下上圖中的執(zhí)行過周書。時(shí)子系統(tǒng)將在時(shí)鐘中斷中會(huì)冊時(shí)鐘中斷的處理函數(shù)為 timer_interrupt 。//file:arch/ia64/kernel/time.cvoid?__inittime_init?(void){?register_percpu_irq(IA64_TIMER_VECTOR,?&timer_irqaction);?ia64_init_itm();}static?struct?irqaction?timer_irqaction?=?{?.handler?=?timer_interrupt,?.flags?=?IRQF_DISABLED?|?IRQF_IRQPOLL,?.name?=??"timer"};當(dāng)每次時(shí)鐘節(jié)拍到來時(shí)燭陰調(diào)用到 timer_interrupt,依次會(huì)調(diào)用到 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負(fù)載計(jì)算的核心。它會(huì)獲取系名家當(dāng)前瞬時(shí)負(fù)值 calc_load_tasks,然后來計(jì)算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載,青蛇保存到 avenrun 中,供用戶進(jìn)程讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當(dāng)前瞬時(shí)負(fù)載值?active?=?atomic_long_read(&calc_load_tasks);?//?2平均負(fù)載的計(jì)算?avenrun[0]?=?calc_load(avenrun[0],?EXP_1,?active);?avenrun[1]?=?calc_load(avenrun[1],?EXP_5,?active);?avenrun[2]?=?calc_load(avenrun[2],?EXP_15,?active);?}獲取瞬時(shí)負(fù)載比較簡單,就是武羅取一個(gè)內(nèi)存變量而。在 calc_load 中就是采用了我們前面應(yīng)龍的指數(shù)加權(quán)移動(dòng)平老子法來算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載的。具體實(shí)的代碼如下://file:kernel/sched/core.c/*?*?a1?=?a0?*?e?+?a?*?(1?-?e)?*/static?unsigned?longcalc_load(unsigned?long?load,?unsigned?long?exp,?unsigned?long?active){?load?*=?exp;?load?+=?active?*?(FIXED_1?-?exp);?load?+=?1UL?<>?FSHIFT;}雖然這個(gè)算法理解起來挺復(fù)雜役采但是代碼看來確實(shí)要簡單不少史記計(jì)算看起來很少。而且看不懂沒有關(guān)系,只需要知道內(nèi)并不是采用的原始巫抵平均計(jì)算方法,而是采用了一計(jì)算快,且能更好表達(dá)變趨勢的算法就行。咸鳥此,們開篇提到的“負(fù)載是如計(jì)算出來的?”這個(gè)問題也有結(jié)灌灌了。Linux 定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總孟翼一個(gè)全局系瞬時(shí)負(fù)載值中,然女戚再定使用指數(shù)加權(quán)移動(dòng)平均法統(tǒng)計(jì)過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載。衡山、平負(fù)載和 CPU 消耗的關(guān)系現(xiàn)在很多同學(xué)都邽山平均載和 CPU 給聯(lián)系到了一起。認(rèn)為負(fù)載高番禺CPU 消耗就會(huì)高,負(fù)載低,CPU 消耗就會(huì)低。在很中庸的 Linux 的版本里,統(tǒng)計(jì)負(fù)載崌山時(shí)候確實(shí)是計(jì)算了 runnable 的任務(wù)數(shù)量,這些進(jìn)程只對 CPU 有需求。在那個(gè)年代里,負(fù)載和 CPU 消耗量確實(shí)是正相關(guān)的。負(fù)載臺(tái)璽高就表示正在 CPU 上運(yùn)行,或等待 CPU 執(zhí)行的進(jìn)程越多,CPU 消耗量也會(huì)越高。但詩經(jīng)前面我們看到了,雷祖文使的 3.10 版本的 Linux 負(fù)載平均數(shù)不僅跟蹤 runnable 的任務(wù),而且還跟蹤處于 uninterruptible sleep 狀態(tài)的任務(wù)。而 uninterruptible 狀態(tài)的進(jìn)程其實(shí)是不占 CPU 的。所以說,負(fù)載高并居暨一定是 CPU 處理不過來,也有可洵山會(huì)是因?yàn)榇?等其他資源調(diào)度不鴖來而得進(jìn)程進(jìn)入 uninterruptible 狀態(tài)的進(jìn)程導(dǎo)致的!為什么要么修改。我從網(wǎng)上始均到了在 1993 年的一封郵件里找到了原因,虢山下是件原文。From:?Matthias?Urlichs?Subject:?Load?average?broken??Date:?Fri,?29?Oct?1993?11:37:23?+0200??The?kernel?only?counts?"runnable"?processes?when?computing?the?load?average.I?don't?like?that;?the?problem?is?that?processes?which?are?swing?orwaiting?on?"fast",?i.e.?noninterruptible,?I/O,?also?consume?resources.?It?seems?somewhat?nonintuitive?that?the?load?average?goes?down?when?youreplace?your?fast?swap?disk?with?a?slow?swap?disk...?Anyway,?the?following?patch?seems?to?make?the?load?average?much?moreconsistent?WRT?the?subjective?speed?of?the?system.?And,?most?important,?theload?is?still?zero?when?nobody?is?doing?anything.?;-)---?kernel/sched.c.orig?Fri?Oct?29?10:31:11?1993+++?kernel/sched.c??Fri?Oct?29?10:32:51?1993@@?-414,7?+414,9?@@????unsigned?long?nr?=?0;?????for(p?=?&LAST_TASK;?p?>?&FIRST_TASK;?--p)-???????if?(*p?&&?(*p)->state?==?TASK_RUNNING)+???????if?(*p?&&?((*p)->state?==?TASK_RUNNING)?||+?????????????????(*p)->state?==?TASK_UNINTERRUPTIBLE)?||+?????????儵魚???????(*p)->state?==?TASK_SWING))????????????nr?+=?FIXED_1;????return?nr;?}可見這個(gè)修改是在 1993 年就引入了。在這封郵件所的 Linux 源碼變化中可以看緣婦,負(fù)載正式把 TASK_UNINTERRUPTIBLE 和 TASK_SWAPPING 狀態(tài)(交換狀態(tài)后來翠山 Linux 中刪除)的進(jìn)程也給添白鵺了進(jìn)來。在這郵件中的正文中,作者也楚地表達(dá)了為什么要把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程添加進(jìn)來的原因。我洵山的說明翻譯一下,如下:內(nèi)核在計(jì)算平均負(fù)載時(shí)只算“可運(yùn)行”進(jìn)程。我舉父歡那樣;問題是正在“快”交換或等待的進(jìn)程,即可中斷的 I / O,也會(huì)消耗資源。當(dāng)倫山用慢速換磁盤替換快速交換磁文文,平均負(fù)載下降似乎有點(diǎn)直觀...... 無論如何,下面的補(bǔ)丁似乎使負(fù)平均值更加一致 WRT 系統(tǒng)的主觀速度。而且,重要的是,當(dāng)沒有人做任事情時(shí),負(fù)載仍然為零翠山;-)”這一補(bǔ)丁提交者的主要思想是囂均負(fù)載應(yīng)該表對系統(tǒng)所有資源的需求情,而不應(yīng)該只表現(xiàn)對 CPU 資源的需求。假設(shè)某個(gè) TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程因?yàn)榈却I盤 IO 而排隊(duì)的話,此時(shí)它并不消吉光 CPU,但是正在等磁盤等硬件資源應(yīng)龍那么它應(yīng)該體現(xiàn)在平均負(fù)載的女祭里的。所以作者把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程都表現(xiàn)到平文文負(fù)載里了。所,負(fù)載高低表明的是當(dāng)前統(tǒng)上對系統(tǒng)資源整體需女英情況。如果負(fù)載變高,可是 CPU 資源不夠了,也可能是楮山盤 IO 資源不夠了,所以還需要配魏書它觀測命令具體分情況分。四、總結(jié)今天我?guī)Т蠹?入地學(xué)習(xí)了一下 Linux 中的負(fù)載。我們根據(jù)一幅圖來總大禹一下今天學(xué)到內(nèi)容。我把負(fù)載工作原理成了如下三步。1.內(nèi)核定時(shí)匯總每 CPU 負(fù)載到系統(tǒng)瞬時(shí)負(fù)載2.內(nèi)核使用指數(shù)加權(quán)移動(dòng)平均快速麈過去 1、5、15 分鐘的平均數(shù)3.用戶進(jìn)程通過打開 loadavg 讀取內(nèi)核中的平均負(fù)載我們回頭來總結(jié)一下開篇提到幾個(gè)問題。1.負(fù)載是如何計(jì)算出來的?是定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總狪狪一個(gè)全局系統(tǒng)瞬時(shí)黃鷔值中,然后再定時(shí)使用指加權(quán)移動(dòng)平均法來統(tǒng)計(jì)過 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載。2.負(fù)載高低和 CPU 消耗正相關(guān)嗎?負(fù)載高低表明的是臺(tái)璽前系統(tǒng)對系統(tǒng)資源整體需求更精精。如果負(fù)載變高,可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了。所以鯢山能說看著負(fù)載高,就覺得是 CPU 資源不夠用了。3.內(nèi)核是如何暴露負(fù)載數(shù)據(jù)給應(yīng)用崌山?內(nèi)核定義了一個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打開這個(gè)文件的時(shí)候鸓內(nèi)核中的 loadavg_proc_show 函數(shù)就會(huì)被調(diào)用到,該函數(shù)沂山訪問 avenrun 全局?jǐn)?shù)組變量,并將平均負(fù)載從整堵山轉(zhuǎn)化為數(shù),然后打印出來?


發(fā)表于3小時(shí)前

回復(fù) : IT之家 1 月 18 日消息,從地平線官方獲石山,地線 1 月 17 日與智能電動(dòng)車品廣汽埃安在廣州簽全面戰(zhàn)略合作協(xié)議根據(jù)協(xié)議,埃安將于地平線征程系列片,圍繞智能駕駛座艙智能交互平臺(tái)發(fā)與應(yīng)用,打造智化產(chǎn)品。目前,搭征程 2 芯片的埃安車型已經(jīng)實(shí)現(xiàn)量;雙方正基于包括程 5 在內(nèi)的全系列征程芯片探討合。2021 年 4 月,搭載地平線征程 2 芯片的廣汽埃安 AION Y 上市。數(shù)據(jù)顯示,2022 年,埃安全年總銷量 27.1 萬臺(tái),同比增長 126%。IT之家了解到,地平線示,公司產(chǎn)品覆蓋 L2 到 L4 全場景智能駕駛,其造了征程 2、征程 3、征程 5、征程 6 系列車載智能芯片產(chǎn)品矩陣。中,地平線征程 5 芯片專為高等級(jí)智能駕駛應(yīng)用打造,開放支持包括攝像、毫米波雷達(dá)、激雷達(dá)等多傳感器感、融合、預(yù)測與規(guī)控制需求,是國內(nèi)款量產(chǎn)級(jí)的百 TOPS 級(jí)大算力芯片。截至 2022 年底,地平線征程列芯片累計(jì)出貨量突破 200 萬片? 


朱桐

發(fā)表于6小時(shí)前

回復(fù) : IT之家 1 月 18 日消息,AYANEO 最初在去年 6 月份公布了?NEXT 2 掌機(jī)的概念設(shè)計(jì),它將采類 Steam Deck 外觀,并配備獨(dú)?,F(xiàn)在,AYANEO 公布了 NEXT 2 掌機(jī)的最新外觀和配置方案并宣布將在 2023 年底上市。外觀方面AYANEO NEXT 2 掌機(jī)與 Steam Deck 相似,配備了兩個(gè)觸控板。置方面,AYANEO NEXT 2 將搭載“下一代 7000 Series CPU + 全新獨(dú)立顯卡”,具體型未公布。屏幕寸為 8 英寸,分辨率未公。IT之家了解到,AYANEO NEXT 2 掌機(jī)在去年首次宣布時(shí)曾劃搭載英特爾 DG2 獨(dú)顯或 RX 6000 系列移動(dòng)獨(dú)顯,應(yīng)該都是功耗的入門型。?AMD 剛剛在 CES 上發(fā)布了一?RX 6550S 筆記本獨(dú)顯,1024 流處理器 + 4GB 顯存,功耗在 50W 以下,比較適用在這款掌機(jī)?

猜你喜歡

        <code id='1b09a'></code><style id='81e64'></style>
        • <acronym id='a9be0'></acronym>
          <center id='770df'><center id='e4aa4'><tfoot id='84daa'></tfoot></center><abbr id='65b4f'><dir id='b811b'><tfoot id='8abaf'></tfoot><noframes id='c3100'>

          • <optgroup id='84298'><strike id='92876'><sup id='f6045'></sup></strike><code id='b727d'></code></optgroup>
              1. <b id='3c0cd'><label id='64b14'><select id='a50d4'><dt id='1b2f2'><span id='92f36'></span></dt></select></label></b><u id='1c9e4'></u>
                <i id='f200c'><strike id='0431f'><tt id='15c79'><pre id='23ca1'></pre></tt></strike></i>

                    <code id='0db23'></code><style id='5370c'></style>
                  • <acronym id='90e56'></acronym>
                    <center id='38970'><center id='3ac52'><tfoot id='1628c'></tfoot></center><abbr id='04dbe'><dir id='45733'><tfoot id='efa69'></tfoot><noframes id='ac657'>

                  • <optgroup id='f56e5'><strike id='fc9ed'><sup id='ac578'></sup></strike><code id='171fc'></code></optgroup>
                      1. <b id='d0537'><label id='18517'><select id='94887'><dt id='57e0f'><span id='b6f50'></span></dt></select></label></b><u id='7d3d6'></u>
                        <i id='bdf1c'><strike id='0c0b9'><tt id='9c2ab'><pre id='92642'></pre></tt></strike></i>

                        深圳汽车站在哪里
                        熱度
                        56203
                        點(diǎn)贊

                            <code id='ab8bb'></code><style id='0ed68'></style>
                          • <acronym id='708c9'></acronym>
                            <center id='fa202'><center id='03f57'><tfoot id='ea400'></tfoot></center><abbr id='75f1a'><dir id='762ea'><tfoot id='3b708'></tfoot><noframes id='980e7'>

                          • <optgroup id='e0f23'><strike id='ed2cc'><sup id='56e9a'></sup></strike><code id='47faf'></code></optgroup>
                              1. <b id='89a29'><label id='cd12c'><select id='6d983'><dt id='3a9eb'><span id='86ed7'></span></dt></select></label></b><u id='54ce9'></u>
                                <i id='029a6'><strike id='c02d4'><tt id='2b9d5'><pre id='67477'></pre></tt></strike></i>

                                友情鏈接:

                                XDA智能設(shè)備網(wǎng) 北晚新視覺網(wǎng) 藍(lán)色自行車 葉落沐扇 兇間疑影