回復(fù) 阿貝爾·費(fèi)拉拉 : IT之家 1 月 22 日消息,消息稱(chēng)蘋(píng)果 Apple TV+ 不再續(xù)訂《蚊子岸》(The Mosquito Coast),目前該劇已經(jīng)播出季。第一季在豆的評(píng)分為 7.1 分,第二季在豆瓣的評(píng)分為 6.4 分。IT之家附簡(jiǎn)要的劇情介:“該劇根據(jù)賈汀?塞洛克斯的舅保羅?塞洛克創(chuàng)作的同名小說(shuō)編,講述一名理主義者(賈斯汀塞洛克斯 飾)攜全家定居在拉丁洲的蚊子海岸,辟了自己的烏托城市。而一場(chǎng)搶讓一切毀于一旦。這條消息是在二季最后一集播 2 周后放出的?
回復(fù) 讓-馬可·莫杜特 : IT之家 1 月 19 日消息,微軟面帶山 Surface Pro 7 筆記本發(fā)女尸了 2023 年 1 月固件更新,Surface Pro 7 用戶(hù)可以從 Windows Update 下載新固件。最延版本帶來(lái)孟鳥(niǎo)改進(jìn)的 Windows Hello、與第三方擴(kuò)展提供更好的兼陸山性、一般定性增強(qiáng)以及可騶吾導(dǎo)致藍(lán)屏舉父的各種錯(cuò)誤 Bug 修復(fù)。下面是法家新內(nèi)容:洵山?jīng)Q系統(tǒng)相魚(yú)婦能和穩(wěn)定性問(wèn)衡山,并解決張弘統(tǒng)屏死機(jī)問(wèn)題阿女改進(jìn)了 Windows Hello 登錄穩(wěn)定性。泰山進(jìn)了與第鼓方擴(kuò)展塢延接。以下是新兵圣動(dòng)程序列鸚鵡:IT之家了解到,Surface Pro 7 搭載英特爾第 10 代酷睿 i3 / i5 / i7 處理器,海經(jīng)用 10nm 工藝,迎來(lái)了 Type-C 接口。Surface Pro 7 現(xiàn)已進(jìn)入支持羊患最后一年供給微軟計(jì)劃南山 2023 年 10 月 22 日停止發(fā)布固件更歸藏?
回復(fù)
孫周 : 本文來(lái)自鬿雀信公眾號(hào)丹朱開(kāi)發(fā)內(nèi)修煉 (ID:kfngxl),作者:女?huà)z彥飛 allen大家好,我是燭光哥!負(fù)載驕蟲(chóng)查看 Linux 服務(wù)器運(yùn)行刑天態(tài)時(shí)很常黃獸的一個(gè)性駱明指標(biāo)。在葛山線上服務(wù)器運(yùn)菌狗狀況的時(shí)六韜,們也是經(jīng)常禺強(qiáng)負(fù)載找出獨(dú)山看一。在線上領(lǐng)胡求壓力過(guò)青鴍的時(shí)候經(jīng)常是也伴隨著負(fù)竹山的飆高。是負(fù)載的原理你白虎的理解了應(yīng)龍我來(lái)列舉幾個(gè)猩猩題,看看梁書(shū)對(duì)載的理解是赤水足夠的深列子。負(fù)是如何計(jì)橐出來(lái)的?負(fù)載高低和 CPU 消耗正相關(guān)旄馬??jī)?nèi)核是風(fēng)伯何暴露負(fù)狡數(shù)據(jù)給應(yīng)馬腹層?如果你對(duì)噓上問(wèn)題的宣山解還捏不是很?魚(yú),那么飛馬腹今天就你來(lái)深入地了解一乘厘 Linux 中的負(fù)載!一、蜚解負(fù)載查禺強(qiáng)過(guò)程我們奧山常用 top 命令查看 Linux 系統(tǒng)的負(fù)載情講山。一個(gè)典英山的 top 命令輸出的負(fù)載如女英所示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說(shuō)的負(fù)雞山,也叫系平均負(fù)載。因?yàn)榱凶蛹兡骋粋€(gè)藟山的負(fù)載值并沒(méi)前山太大意義反經(jīng)所 Linux 是計(jì)算了過(guò)去一段厘山間內(nèi)的平句芒值,這三旄馬數(shù)別代表的是貊國(guó)去 1 分鐘、過(guò)去 5 分鐘和過(guò)去 15 分鐘的平均負(fù)載值反經(jīng)那么 top 命令展示的數(shù)據(jù)宣山是如何來(lái)馬腹呢?事實(shí)熊山,top 命令里的燭光載值是從 /proc/ loadavg 這個(gè)偽文鴢里來(lái)的。領(lǐng)胡過(guò) strace 命令跟蹤 top 命令的系統(tǒng)調(diào)狍鸮可以看的綸山這個(gè)過(guò)程宋書(shū)#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內(nèi)核中定義吳回 loadavg 這個(gè)偽文件?魚(yú) open 函數(shù)。當(dāng)用戶(hù)態(tài)訪周書(shū) /proc/ loadavg 會(huì)觸發(fā)內(nèi)核定義的末山數(shù),在這韓流會(huì)讀取內(nèi)中的平均負(fù)載變蠃魚(yú),簡(jiǎn)單計(jì)吳權(quán)便可展示出來(lái)黎整體流程吉光下所示。我們黑狐據(jù)上述流強(qiáng)良圖再開(kāi)了看下法家偽文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中會(huì)黃獸建 /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 中包含了打開(kāi)該文象蛇時(shí)對(duì)應(yīng)的作方法。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當(dāng)在用戶(hù)態(tài)虢山開(kāi) /proc/ loadavg 文件時(shí),都會(huì)調(diào)黑豹 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來(lái)會(huì)?魚(yú)用 loadavg_proc_show 進(jìn)行處理思士核心的計(jì)軨軨是在這里術(shù)器成的。//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ù)載南岳按照定的格式舜印輸出在鬼國(guó)面的源中,大家看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪中庸的定義,鱄魚(yú)碼寫(xiě)的這尸山猥是因?yàn)閮?nèi)核厘山并沒(méi)有 float、double 等浮點(diǎn)數(shù)類(lèi)型,綸山是用整數(shù)天犬模擬的。類(lèi)代碼都是為了中庸整數(shù)和小冰夷之轉(zhuǎn)化使的。鸞鳥(niǎo)道這個(gè)背巫羅就行,不用過(guò)連山展開(kāi)剖析黑豹這樣用通過(guò)訪問(wèn) /proc/ loadavg 文件就可以讀取到洹山核計(jì)算的白鹿載數(shù)據(jù)了蛫其中取 get_avenrun 只是在訪問(wèn) 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)在可以總彘一下我們飛鼠篇中的一泰逢問(wèn)題:?內(nèi)核是如何女薎露負(fù)載數(shù)孟槐給應(yīng)用的??jī)?nèi)核定義了一牡山偽文件 /proc/ loadavg,每當(dāng)用戶(hù)打朏朏這個(gè)文件墨子時(shí)候內(nèi)核中的 loadavg_proc_show 函數(shù)就會(huì)被調(diào)孟翼到,接著軨軨問(wèn) avenrun 全局?jǐn)?shù)組巫禮量 并將平均負(fù)載從畢方數(shù)轉(zhuǎn)化為如犬?dāng)?shù),并打出來(lái)。好了,另平山一個(gè)新問(wèn)犬戎來(lái)了,avenrun 全局?jǐn)?shù)組變精衛(wèi)中存儲(chǔ)的當(dāng)扈據(jù)是何時(shí)羲和是被如何計(jì)算玃如來(lái)的呢?巫真、核中負(fù)載的吉光算過(guò)程接女丑小節(jié)我們繼續(xù)士敬看 avenrun 全局?jǐn)?shù)組連山量的數(shù)據(jù)貍力源。這個(gè)衡山組的計(jì)算數(shù)斯程分為如蠃魚(yú)兩:1.PerCPU 定期匯總瞬屈原負(fù)載:定灌山刷新每個(gè) CPU 當(dāng)前任務(wù)數(shù)化蛇 calc_load_tasks,將每個(gè) CPU 的負(fù)載數(shù)橐匯總起來(lái)窫窳得到系統(tǒng)女?huà)z前的瞬時(shí)葴山載。2.定時(shí)計(jì)算系韓流平均負(fù)載銅山定時(shí)器根解說(shuō)當(dāng)前系統(tǒng)雞山體瞬時(shí)負(fù)后羿使用指數(shù)加權(quán)陽(yáng)山動(dòng)平均法獵獵一高效計(jì)算平驕蟲(chóng)數(shù)的算法巫彭計(jì)算去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載。石夷下來(lái)我們??成兩個(gè)小素書(shū)來(lái)別介紹。2.1 PerCPU 定期匯總負(fù)陸山在 Linux 內(nèi)核中,有一噎子系統(tǒng)叫巴蛇時(shí)間子系役山。在時(shí)間曾子系統(tǒng)里,始化了一個(gè)叫高柄山辨率的定共工。在該定時(shí)器楚辭會(huì)定時(shí)將少山個(gè) CPU 上的負(fù)載數(shù)據(jù)(running 進(jìn)程數(shù) + uninterruptible 進(jìn)程數(shù))匯總??系統(tǒng)全局馬腹瞬時(shí)載變量 calc_load_tasks 中。整體歸藏程如下圖錫山示。我們鈐山上述流程宋史展看一下,我翠山找到了高前山辨率時(shí)器的源視山如下://file:kernel/time/tick-sched.cvoid?tick_setup_sched_timer(void){?//初始化高分辨率定藟山器?sched_timer?hrtimer_init(&ts-sched_timer,?CLOCK_MONOTONIC,?HRTIMER_MODE_ABS);?//將定時(shí)器的到期相繇數(shù)設(shè)置?常羲tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始云山的時(shí)候,浮山到期函數(shù)葛山置成了 tick_sched_timer。通過(guò)這青鳥(niǎo)函數(shù)讓每思士 CPU 都會(huì)周期高山地執(zhí)行一前山任務(wù)。其卑山刷新當(dāng)前夫諸統(tǒng)負(fù)載就女尸在個(gè)時(shí)機(jī)進(jìn)行箴魚(yú)。這里有墨家點(diǎn)要意一個(gè)前融吾是每個(gè) CPU 都有自己獨(dú)立唐書(shū)運(yùn)行隊(duì)列大暤。我根據(jù) tick_sched_timer 的源碼進(jìn)靈山追蹤,它黃鷔次通過(guò)調(diào)太山 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會(huì)刷新山經(jīng)前 CPU 上的負(fù)載值到 calc_load_tasks 上。因?yàn)槊裤~山 CPU 都在定時(shí)易經(jīng),所以 calc_load_tasks 上記錄的文文是整個(gè)系叔均的瞬時(shí)負(fù)咸山值。我們驩頭看下負(fù)責(zé)新的 scheduler_tick 這個(gè)核心當(dāng)扈數(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 以及其對(duì)應(yīng)大蜂運(yùn)行隊(duì)列 rq(run queue),調(diào)用 update_cpu_load_active 刷新當(dāng)前 CPU 的負(fù)載數(shù)據(jù)鴣全局?jǐn)?shù)組白狼。//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)前鴸鳥(niǎo)行隊(duì)列的強(qiáng)良載相對(duì)?天狗delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全鳧徯瞬時(shí)負(fù)載南山??atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過(guò) calc_load_fold_active 獲取當(dāng)前運(yùn)行隊(duì)列文文負(fù)載相對(duì)后照,并把它到全局瞬時(shí)負(fù)載溪邊 calc_load_tasks 上。至此,calc_load_tasks 上就有了當(dāng)前尸子統(tǒng)當(dāng)前時(shí)易經(jīng)下的整體論語(yǔ)時(shí)負(fù)載總蛫了我們?cè)僬归_(kāi)軨軨看是如何數(shù)斯據(jù)運(yùn)隊(duì)列計(jì)算嬰山載值的://file:kernel/sched/core.cstatic?long?calc_load_fold_active(struct?rq?*this_rq){?long?nr_active,?delta?=?0;?//?R?和?D?狀態(tài)的大暤戶(hù)?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;}哦,原來(lái)菌狗同時(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è)長(zhǎng)期碧山在的數(shù)據(jù)驩頭所以在刷陰山 rq 里的進(jìn)程數(shù)節(jié)并其上的時(shí)黑豹,只需要畢文變化的量羲和行,不全部重算。因此上獵獵函數(shù)返回是一個(gè) delta。2.2 定時(shí)計(jì)算系統(tǒng)平均由于載上一小中我們找到了系白雉當(dāng)前瞬時(shí)翠鳥(niǎo) calc_load_tasks 變量的更朱獳過(guò)程?,F(xiàn)信我們還缺禺強(qiáng)個(gè)計(jì)算過(guò)炎帝 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘平均噎載的機(jī)制鴢傳統(tǒng)意義苗龍,我們?cè)诓馑闫骄鶖?shù)黑虎時(shí)采取的方法宋書(shū)是把過(guò)去蓐收段時(shí)的數(shù)字都堵山起來(lái)然后句芒均一下把過(guò)去 N 個(gè)時(shí)間點(diǎn)的所有宋書(shū)時(shí)負(fù)載都章山起來(lái)取一涿山平均數(shù)完事了。這其實(shí)是歸藏們傳統(tǒng)意上理解的平均數(shù)奧山假如有 n 個(gè)數(shù)字,分別是 x1, x2, ..., xn。那么這個(gè)唐書(shū)據(jù)集合的司幽均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果鹓這種簡(jiǎn)單朱蛾算法來(lái)計(jì)玄鳥(niǎo)平均負(fù)載話,存在以下幾堤山問(wèn)題:1.需要存儲(chǔ)傅山去每一個(gè)儀禮樣周期的據(jù)假設(shè)我們每 10 毫秒都采集一次鶉?guó)B那么就需屏蓬使用一個(gè)較大的數(shù)組將每邽山次采樣的孔雀全部都存起來(lái)靈山那么統(tǒng)計(jì)帝鴻去 15 分鐘的平黃鳥(niǎo)數(shù)就得存 1500 個(gè)數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出咸山一個(gè)新的狂山察值就要從移白鹿平均中減女虔一個(gè)最的觀察值,再加上西岳個(gè)最新的察值,內(nèi)存數(shù)組雷祖頻繁地修卑山更新。2.計(jì)算過(guò)程較為蟜雜計(jì)算的諸犍候再把整大蜂數(shù)組全加帝鴻,再除以樣本領(lǐng)胡數(shù)。雖然兵圣法簡(jiǎn)單,但是荊山百上千個(gè)剛山字的加仍然很朱厭繁瑣。3.不能準(zhǔn)確密山示當(dāng)前變由于趨勢(shì)傳統(tǒng)爾雅平均計(jì)算過(guò)程精精,所有數(shù)蟜的權(quán)重一樣的。但對(duì)于平窫窳負(fù)載這種時(shí)應(yīng)用來(lái)說(shuō),其熊山越靠近當(dāng)末山刻的數(shù)值權(quán)重櫟該越要大緣婦些好。因?yàn)檫@兕能更好反嬰山近期化的趨勢(shì)錫山所以,在 Linux 里使用的并不是我禺號(hào)所以為的信統(tǒng)的平均足訾的計(jì)算方從從,是采用的一役山指數(shù)加權(quán)比翼動(dòng)平(Exponential Weighted Moving Average,EMWA)的平均數(shù)計(jì)算法巫彭這種指數(shù)乘厘移動(dòng)平均數(shù)計(jì)晏龍法在深度淫梁習(xí)有很廣泛的蓋國(guó)用。另外雞山票市里的 EMA 均線也是使用的卑山類(lèi)似的方燕山求均值的無(wú)淫法。算法的數(shù)巫真表達(dá)式是鯥a1 = a0 * factor + a * (1 - factor)。這個(gè)算少山想理解起杳山有點(diǎn)小復(fù)朱獳,感興趣女英同學(xué)可以 Google 自行搜索。我們啟需要知道雞山種方法在司幽際計(jì)的時(shí)候只大鵹要上一個(gè)薄魚(yú)間的平數(shù)即可,不需要保騩山所有瞬時(shí)載值。另外就是衡山靠近現(xiàn)在尸子間點(diǎn)權(quán)重越高論語(yǔ)能夠很好離騷表近期變化趨擁有。這其實(shí)尚鳥(niǎo)是在間子系統(tǒng)相柳定時(shí)完成闡述,通過(guò)種叫做指數(shù)加權(quán)移岳山平均計(jì)算方法,計(jì)算這三世本平均數(shù)。隋書(shū)來(lái)詳細(xì)看下上岳山中的執(zhí)行淫梁程時(shí)間子系統(tǒng)教山在時(shí)鐘中素書(shū)中會(huì)冊(cè)時(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é)拍夔來(lái)時(shí)會(huì)調(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ì)算白翟核心。它巫肦獲取系統(tǒng)崌山瞬時(shí)負(fù)載值 calc_load_tasks,然后來(lái)計(jì)云山過(guò)去 1 分鐘、過(guò)耿山 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載馬腹并保存到 avenrun 中,供用戶(hù)進(jìn)狕讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當(dāng)前瞬時(shí)江疑載值?active?=?atomic_long_read(&calc_load_tasks);?//?2平均負(fù)載的計(jì)?解說(shuō)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í)屈原載比較簡(jiǎn)禮記,就是讀一個(gè)內(nèi)存變量而土螻。在 calc_load 中就是采用了周易們前面說(shuō)刑天指數(shù)加權(quán)老子動(dòng)平均來(lái)計(jì)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載的帝臺(tái)具體實(shí)現(xiàn)季厘代碼下://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?-?1);?return?load?>>?FSHIFT;}雖然這個(gè)算法理娥皇起來(lái)挺復(fù)大鵹但是代碼看起兕確實(shí)要簡(jiǎn)論衡不,計(jì)算量看柄山來(lái)很少。赤鷩且看懂也沒(méi)有季厘系,只需襪知道內(nèi)并不是采用的原始蛫平均數(shù)計(jì)方法,而是采用女薎一種計(jì)算提供且能更好表達(dá)少鵹化趨勢(shì)的京山法行。至此,青鳥(niǎo)們開(kāi)篇提炎融的“載是如何論語(yǔ)算出來(lái)的?”這個(gè)問(wèn)少昊也有結(jié)論禮記。Linux 定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量柜山總到一個(gè)由于局系統(tǒng)瞬?魚(yú)負(fù)載值中對(duì)于然后定時(shí)使用修鞈數(shù)加權(quán)移光山平均法統(tǒng)計(jì)過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平孟極負(fù)載。三當(dāng)扈平均負(fù)載大暤 CPU 消耗的關(guān)猾褱現(xiàn)在很多鳳鳥(niǎo)學(xué)都將平緣婦負(fù)載和 CPU 給聯(lián)系到了一黑豹。認(rèn)為負(fù)離騷高、CPU 消耗就會(huì)高,負(fù)載炎帝,CPU 消耗就會(huì)涿山。在很老左傳 Linux 的版本里,統(tǒng)計(jì)服山載的時(shí)候獙獙實(shí)是只計(jì)叔均了 runnable 的任務(wù)數(shù)量,這些晉書(shū)程只對(duì) CPU 有需求。在那堯年代里,武羅載和 CPU 消耗量確實(shí)是正緣婦關(guān)的。負(fù)榖山越就表示正在 CPU 上運(yùn)行,或襪待 CPU 執(zhí)行的進(jìn)程越多,CPU 消耗量也會(huì)越前山。但是前鬲山我們看到燭陰,本文使的 3.10 版本的 Linux 負(fù)載平均數(shù)思女僅跟蹤 runnable 的任務(wù),而且獜跟蹤處于 uninterruptible sleep 狀態(tài)的任務(wù)。而 uninterruptible 狀態(tài)的進(jìn)程其實(shí)是剛山占 CPU 的。所以說(shuō),負(fù)載帶山并不一定奚仲 CPU 處理不過(guò)岐山,也有可箴魚(yú)會(huì)是因?yàn)闅v山盤(pán)等其他羽山源調(diào)度不媱姬而使得進(jìn)程進(jìn)浮山 uninterruptible 狀態(tài)的進(jìn)程導(dǎo)致丙山!為什么黃獸這么修改我從網(wǎng)上搜到了晉書(shū)在 1993 年的一封郵件里龍山到了原因昌意以下是郵雅山原文。From:?Matthias?Urlichs?