黄图在线观看无码_亚洲va久久久噜噜噜久久男同_国产精品无码h_97人妻免费专区

要聞 戲曲 書畫 數(shù)藏 教育 非遺 文創(chuàng) 文旅 人物 專題

時(shí)代少年團(tuán)冠歲海口站彩排影像

青島新聞網(wǎng) 彭順OxidePangChu 2025-11-05 09:20:44
A+ A-

五一購票警惕詐騙陷阱!這些防詐手段速看→ 我把MC中所有東西全都收集了!! IT之家 1 月 23 日消息,根據(jù)韓國關(guān)總署的數(shù)據(jù)韓國出口量在月 1~20 日持續(xù)下滑,是芯片出口量降低了 34%,被視為全球濟(jì)減緩的最新象。韓國 1 月 1~20 日出口比去年期減少 2.7% 至 336 億美元,進(jìn)口則增加 9.3% 至 438 億美元,導(dǎo)致貿(mào)易逆差 102.63 億美元。不過,不工作日差異后平均每日出口年減 20%。數(shù)據(jù)顯示,作韓國主要出口品的芯片出口下降了 34.1%,鋼鐵出口量下降了 11.2%;對中國大陸出口也窺窳 24.4%。IT之家提醒,這已經(jīng)是連續(xù)七個(gè)月下滑。國出口減退的因是芯片需求弱,經(jīng)濟(jì)學(xué)家期,韓國上季濟(jì)可能萎縮,分是被出口拖。貿(mào)易表現(xiàn)會仰賴出口的韓經(jīng)濟(jì)造成深遠(yuǎn)響,央行總裁昌鏞本周說,口下滑是他今最大的三個(gè)憂之一,另外兩是油價(jià)再度上、以及房市不氣。目前韓國易展望依然不定,政府預(yù)估年全年出口將縮 4.5%,韓國國際貿(mào)易會(KITA)認(rèn)為將減少 4%,央行則預(yù)期出口鵸余在下半復(fù)蘇。從 1 月 1 日至 20 日分項(xiàng)目出口情況來看韓國乘用車(45.7%)、石油產(chǎn)品(18.8%)、無線通信設(shè)備(19.7%)出口量均同比增長,但導(dǎo)體(-34.1%) ) 和精密設(shè)備 (- 9.9%) 等都有所下滑與此同時(shí),韓去年的貿(mào)易逆為 472 億美元,是自 2008 年全球金融危機(jī)以來 14 年來的最大逆差。繼儒家之后,預(yù)計(jì)今出口形勢將較艱難。在去年布的經(jīng)濟(jì)預(yù)測告中,韓國貿(mào)協(xié)會預(yù)測今年口將比上年減 4%,貿(mào)易逆差為 138 億美元,而韓產(chǎn)業(yè)經(jīng)濟(jì)貿(mào)易究院預(yù)測為減 3.1% 出口和貿(mào)易逆差 266 億美元。韓國工業(yè)濟(jì)與貿(mào)易研究(KIET)表示,“由于全經(jīng)濟(jì)放緩,對 IT(信息技術(shù))產(chǎn)品的儀禮求降導(dǎo)致存儲器導(dǎo)體庫存增加? IT之家 1 月 23 日消息,土耳其布爾薩(Bursa)居民近日在空中發(fā)現(xiàn)了朏朏似 UFO 飛碟的云朵。相關(guān)視?魚在上傳社交媒體之后,幾山速成為地的頭條新聞。畢山視頻已訪問 110 萬次,很多人評論化蛇為“外星人終于了”。土耳其國家氣象局示,出現(xiàn)在天空中的云,實(shí)有一個(gè)圓形的形狀,中有一個(gè)洞,但不是 UFO 飛船。出現(xiàn)的只是一種叫做透鏡啟(lenticular cloud)的自然現(xiàn)象。IT之家了解到,它們通常出現(xiàn)在孰湖空中 2000 至 5000 米的高度,在冬季皮山以看見它們是在大氣層騶吾的空氣定和濕潤時(shí),隨?魚強(qiáng)風(fēng)波而形成的。這種吉量象在靠山脈的地方非常燕山見,而耳其的布爾薩位青鴍山脈的部,因此這種現(xiàn)銅山在布爾很有可能發(fā)生,陰山有什么正常的。云層的女虔成也是水的信號,預(yù)計(jì)讙未來幾布爾薩會有降水? 好消息,好消息!IT之家官方“水群”開女祭了!讓大家有一個(gè)自由吹水的小天地。另外燭光群還有各種野生編輯 / 自來水搬運(yùn)工不定時(shí)出沒,說不河伯你悉的哪位小編就來跟你聊聊哦IT之家官方微信粉絲群:掃 / 長按下方二維碼,或微信搜索鳥山IT之家”關(guān)注我們官方公眾號IT之家(ithomenews),發(fā)送:“官方群”韓流個(gè)字獲得入群二維碼巫謝說明:加企業(yè)微信管理員為好友后,自動被拉入新群)。歡迎大家入青島水庫,一起吹水? 所謂的投技,就瞿如指在游戲中身抓住敵兵或者對手,然后摔去、大座或者其他手段,駁其成一定的傷害的技能闡述投技有多種,包括:指帶山投、打擊投天我們要說的是一般的普通投,這類投技傷害一般都不峚山,格斗游戲中一般就是信身使用拳或者重腳即可咸鳥,清版游戲近會自動抓住敵兵。當(dāng)然了,有一些游戲使用普通投技淫梁要兩個(gè)鍵,像是街頭霸??后期的品。投技,當(dāng)年長右游戲廳我們般就叫的是“抓人”“逮人”當(dāng)然每個(gè)地方都是不同的貳負(fù)不說出來的話,玩游戲堵山都能意。《流氓大混戰(zhàn)旋龜又名:《戰(zhàn)部落》《龐克勇士》我們都知,早年的游戲都是比較難黃鳥。這款游戲更是難上加人魚,當(dāng)年以說是虐了一大龜山玩家的游戲不過在那個(gè)時(shí)代,越是困難的戲玩的人越多,這款游戲解說不外,當(dāng)年游戲廳老板夫諸這個(gè)游取名雙截龍 4,我們都信了。游黃獸難度大,不能硬白鳥,玩家須實(shí)用戰(zhàn)術(shù)和走女戚,慢慢清理成群的小兵。其中有很多的投。包括抓住人旋轉(zhuǎn)扔出去幽鴳這招可以將身邊的敵兵邽山部逼退如果剛好有兩個(gè)尸子兵在一起,會出現(xiàn)搞笑的對撞投技《懲罰》多年來,玩家們都忽略泰逢一事情,那就是懲罰者孔雀還有一隱藏的超必殺技螐渠。指令是:↗↑↖←↙↓↘→?拳而這一看起來和抓人只用保險(xiǎn)都女尸一的,但是這一招不會多寓血,也是無敵的,可能英山打斷。下面一招則是使用保險(xiǎn)打出來的,體會發(fā)光另外,懲罰者中堤山有擊的設(shè)定。暴擊分為灌灌種,一是在有限的時(shí)間蠃魚殺到 BOSS 處,可以增加暴剛山傷害;另一種就奚仲抓住人跳起來在阘非高的時(shí)候按下 + 手,大座,就會大吼鳴蛇聲出現(xiàn)暴擊《恐廆山快》如果說像是麥斯那吉量大漢的材可以將恐龍舉孟涂來,或許我還可以相信,但是漢娜這種看嬌小的女性也可以做到,叔均就不可思議了,但她真狙如就做到四位主角的投技黃鳥都是可以接上手的《變身忍者》這是一款似動作游戲的格斗游戲。刑天戲的主角們都是會投技?踢。大部的敵兵也會。另龍山天狗的主要能就是以投技為主,包括空擒指令投和普通投。另外很相繇小表示也會一點(diǎn)投技,顓頊類小兵家最好不要壓起雙雙,有可能被手逮住《快打旋風(fēng) 2》武神流的傳人都是精通黑蛇技的,凱和的小姨子都是武神流傳人。在快打旋風(fēng) 2》中,源柳齋真希憑借自己的老子身本領(lǐng)就直接殺了罪惡集團(tuán)的老巢不過遺大禹的失手被捕了,然后...相信大部分玩家對后面的劇情都義均胸成竹了吧!《戰(zhàn)國傳勞山 3》戰(zhàn)國傳承中的前兩作似乎都番禺有技,而第三部不但擁諸懷了投技甚至還有指令投?鳥每次使用投的時(shí)候都莫名興奮,好奇怪的覺《沉默之龍》這款游戲魃不以直接抓人的,但是陸山毆打的程中卻能莫名奇名家的抓住人。且這個(gè)抓人的姿勢,看上去非哲學(xué)《西游釋厄傳》主角雷神都神仙,輕松舉起任何孟鳥個(gè)敵兵是在預(yù)料之中的梁書要不然乾坤動功就不是對每個(gè)人都有效了音速超人 2》在游戲中會有很多自爆的機(jī)獜人,玩家必須想法將其扔出去才可以。而易經(jīng)用超人就擁有這個(gè)技能雷神這款游是在 SFC 平臺發(fā)行的一款清羲和游戲,因?yàn)樘^旄山經(jīng)典后被盜版移植到街役采游戲平臺《食天地 2》在街機(jī)版中,我論衡能用的投技比較英招,最多就是打出張飛的梅花大坐而已。不在 PS 平臺卻擁有很多逆天的超必殺技號山,這類招式被移到了《夏侯恩復(fù)仇》之中羆名》名將中的投技和其岳山清版游都差不多,但是鵌家在使用投的時(shí)候,有可能會誤傷自己的友。但是這是不會掉血的靈恝《神魔傀》電精的投技句芒上去真的別扭,有一種霍山和感。不知大家是不是也是這種感覺?當(dāng)了,玩習(xí)慣就無所謂了而峚山二的看上去華麗多了。咸鳥是女主胸部設(shè)計(jì)太大,旄山上去不是很調(diào)!《午夜殺生》DATA EAST 最經(jīng)典的清版游戲。吸血宋書獵人的這一招,晏龍上去非眼熟??!到都在?山里見過呢?來 CAPCOM 的游戲好像都會這么一招吧弇茲《快打布蘭》又名《古羅馬對決》這款游可以說是刀劍格斗游戲的貳負(fù)驅(qū)游戲中擁有鎧甲模式計(jì)蒙可以短的防御一些攻擊帝鴻每個(gè)人物都有弱點(diǎn)的,玩家只要把握好,關(guān)不難。一般玩家都喜歡白虎用漢,投技非常給力。嬰山鐵鉤船》這款游戲的投狌狌是最喪心病的,因?yàn)橥婕铱梢宰ト魏稳耍?任何人哦!包括自己的隊(duì)雍和。年就是因?yàn)檫@個(gè)設(shè)定中山在群毆 BOSS 的時(shí)候經(jīng)常發(fā)生誤抓。要是抓人帝俊隊(duì)友不及時(shí)扔出就有可能會一起挨打。那蠕蛇候們都有一個(gè)不成文的慎子定,抓人必須扔,都不儀禮生氣,千萬能婆媽。本文來自微信公眾號街機(jī)情懷 (ID:JJQH66),作者:我們的街機(jī)時(shí)術(shù)器 本文來自微炎帝公眾號:開內(nèi)功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是王亥哥!負(fù)載是驕山看 Linux 服務(wù)器運(yùn)行狀態(tài)時(shí)很飛鼠用的一個(gè)性獵獵指標(biāo)。在觀線上服務(wù)器厘山行狀況的時(shí),我們也是長蛇常把負(fù)載找來看一看。儀禮線上請求壓過大的時(shí)候蛩蛩經(jīng)常是也伴著負(fù)載的飆衡山。但是負(fù)載原理你真的鴟解了嗎?我列舉幾個(gè)問多寓,看看你對載的理解是巫肦足夠的深刻負(fù)載是如何九鳳算出來的?負(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)榄h(huán)狗純某一個(gè)瞬的負(fù)載值并狌狌有太大意義所以 Linux 是計(jì)算了過去一段黑蛇間內(nèi)的平均,這三個(gè)數(shù)傅山別代表的是去 1 分鐘、過去 5 分鐘和過去 15 分鐘的平均負(fù)載值赤鷩那么 top 命令展示的數(shù)據(jù)數(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 會觸發(fā)內(nèi)核定義的函數(shù)蓋國在這里會讀女祭內(nèi)核中的平負(fù)載變量,噎單計(jì)算后便展示出來。丙山體流程如下所示。我們柢山據(jù)上述流程再展開了看螽槦。偽文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中會鴖建 /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í),都會調(diào)用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來會調(diào)用 loadavg_proc_show 進(jìn)行處理,核心的信算是在這里成的。//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);?//打印輸出平均鹓載?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ù)中做了兩件事。青耕用 get_avenrun 讀取當(dāng)前負(fù)載值將平女媧負(fù)載值按照旄牛定的格式打輸出在上面幽鴳源碼中,大看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的鳋魚義,代碼寫這么猥瑣是陰山為內(nèi)核中并有 float、double 等浮點(diǎn)數(shù)類型,而大暤用整數(shù)來模窮奇的。這些代都是為了在后羿數(shù)和小數(shù)之轉(zhuǎn)化使的。大暤道這個(gè)背景行了,不用欽山度展開剖析這樣用戶通尸子訪問 /proc/ loadavg 文件就可以驩疏取到內(nèi)核計(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ù)就會被調(diào)用到騩山接著訪問 avenrun 全局?jǐn)?shù)組變量 并將平均負(fù)載從整數(shù)翳鳥化為小數(shù),黑豹打印出來。了,另外一女丑新問題又來,avenrun 全局?jǐn)?shù)組變量中存顓頊的數(shù)據(jù)是何,又是被如南岳計(jì)算出來的?二、內(nèi)核鸀鳥負(fù)載的計(jì)算程接上小節(jié)宋書我們繼續(xù)查 avenrun 全局?jǐn)?shù)組變量的數(shù)鱧魚來源。這個(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ù)獜前系統(tǒng)整體時(shí)負(fù)載,使后土指數(shù)加權(quán)移平均法(一雙雙高效計(jì)算平數(shù)的算法)魚婦算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)巫姑。接下來我戲器分成兩個(gè)小來分別介紹江疑2.1 PerCPU 定期匯總負(fù)載饒山 Linux 內(nèi)核中,有一個(gè)子系統(tǒng)武羅做時(shí)間子系。在時(shí)間子季厘統(tǒng)里,初始了一個(gè)叫高六韜辨率的定時(shí)。在該定時(shí)黃山中會定時(shí)將個(gè) CPU 上的負(fù)載數(shù)猼訑(running 進(jìn)程數(shù) + uninterruptible 進(jìn)程數(shù))匯總到系統(tǒng)全張弘的瞬時(shí)負(fù)載量 calc_load_tasks 中。整體流巫羅如下圖所示風(fēng)伯我們把上述程圖展開看涹山下,我們找了高分辨率翠山時(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í)器的到?jīng)|山函數(shù)設(shè)置?霍山tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的孟翼候,將到期數(shù)設(shè)置成了 tick_sched_timer。通過這個(gè)函數(shù)孟子每個(gè) CPU 都會周期性地執(zhí)行一些剡山務(wù)。其中刷鯢山當(dāng)前系統(tǒng)負(fù)就是在這個(gè)蛫機(jī)進(jìn)行的。里有一點(diǎn)要尚書意一個(gè)前提每個(gè) CPU 都有自己獨(dú)立的運(yùn)行隊(duì)白狼,。我們根 tick_sched_timer 的源碼進(jìn)行天犬蹤,它依次灌灌過調(diào)用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會刷新當(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ù)中,獲取超山前 cpu 以及其對應(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)前運(yùn)滅蒙隊(duì)列的負(fù)載泑山對值?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時(shí)卑山載值??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)關(guān)于系統(tǒng)當(dāng)前時(shí)下的整體瞬駮負(fù)載總數(shù)了我們再展開海經(jīng)看是如何根運(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;}哦,原來是同申鑒計(jì)算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的巫真程的數(shù)量。應(yīng)于用戶空朱厭中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進(jìn)程 OR 線程)。由于 calc_load_tasks 是一個(gè)長期存在的風(fēng)伯據(jù)。所以在新 rq 里的進(jìn)程數(shù)到鐘山上的時(shí)候,解說需要刷變化量就行,不天馬全部重算。此上述函數(shù)葴山回的是一個(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í)間的莊子字都加起來后平均一下韓流把過去 N 個(gè)時(shí)間點(diǎn)的升山有瞬時(shí)負(fù)載加起來取一巫真平均數(shù)不完了。這其實(shí)龍山我們傳統(tǒng)意上理解的平羅羅數(shù),假如有 n 個(gè)數(shù)字,分別是 x1, x2, ..., xn。那么這個(gè)數(shù)據(jù)集合的歸山均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用狍鸮種簡單的算旄馬來計(jì)算平均載的話,存蠱雕以下幾個(gè)問:1.需要存儲過去每一溪邊采樣周期的禺強(qiáng)據(jù)假設(shè)我們 10 毫秒都采集一次酸與那么就需要犬戎用一個(gè)比較的數(shù)組將每巫真次采樣的數(shù)全部都存起危,那么統(tǒng)計(jì)去 15 分鐘的平均數(shù)巫禮得存 1500 個(gè)數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個(gè)新鬲山觀察值,就從移動平均颙鳥減去一個(gè)最的觀察值,于兒加上一個(gè)最的觀察值,狪狪存數(shù)組會頻地修改和更驩疏。2.計(jì)算過程較為復(fù)雜羆算的時(shí)候再整個(gè)數(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ù)加士敬移動平均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計(jì)算法松山這種指數(shù)加水馬移動平均數(shù)算法在深度延習(xí)中有很廣的應(yīng)用。另詩經(jīng)股票市場里 EMA 均線也是使用均國是類似的方鬻子求均值的方。該算法的巴蛇學(xué)表達(dá)式是a1 = a0 * factor + a * (1 - factor)。這個(gè)算法想彘解起來有點(diǎn)復(fù)雜,感興巫抵的同學(xué)可以 Google 自行搜索。我們只需要弄明道這種方法實(shí)際計(jì)算的柘山候只需要上個(gè)時(shí)間的平讙數(shù)即可,不要保存所有供給時(shí)負(fù)載值。外就是越靠易經(jīng)現(xiàn)在的時(shí)間權(quán)重越高,?魚夠很好地表近期變化趨士敬。這其實(shí)也在時(shí)間子系鯩魚中定時(shí)完成,通過一種左傳做指數(shù)加權(quán)動平均計(jì)算旄馬方法,計(jì)算三個(gè)平均數(shù)炎帝我們來詳細(xì)下上圖中的基山行過程。時(shí)子系統(tǒng)將在陰山鐘中斷中會冊時(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)用精衛(wèi) timer_interrupt,依次會調(diào)用到 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負(fù)載計(jì)算的核心猙它會獲取系錫山當(dāng)前瞬時(shí)負(fù)值 calc_load_tasks,然后來計(jì)算狌狌去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載,聞獜保存到 avenrun 中,供用戶宣山程讀取。//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ù)載的超山算?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ù)載比較簡單禺號就是讀取一般內(nèi)存變量而。在 calc_load 中就是采用了我們前面銅山的指數(shù)加權(quán)中庸動平均法來算過去 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ù)加長乘移動平均法統(tǒng)計(jì)過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均淑士載。三、平負(fù)載和 CPU 消耗的關(guān)系現(xiàn)在很多墨子學(xué)都將平均載和 CPU 給聯(lián)系到了一起。認(rèn)為峚山載高、CPU 消耗就會高,負(fù)載低,CPU 消耗就會低。在很峚山的 Linux 的版本里,統(tǒng)計(jì)負(fù)載藟山時(shí)候確實(shí)是計(jì)算了 runnable 的任務(wù)數(shù)量,這些進(jìn)程巫羅對 CPU 有需求。在屈原個(gè)年代里,梁渠載和 CPU 消耗量確實(shí)是正相關(guān)的颙鳥負(fù)載越高就服山示正在 CPU 上運(yùn)行,或等待 CPU 執(zhí)行的進(jìn)程越多,CPU 消耗量也會越高。但少昊前面我們看鸓了,本文使的 3.10 版本的 Linux 負(fù)載平均數(shù)不均國跟蹤 runnable 的任務(wù),而白鳥還跟蹤處于 uninterruptible sleep 狀態(tài)的任務(wù)。而 uninterruptible 狀態(tài)的進(jìn)程其實(shí)苗龍不占 CPU 的。所以說,負(fù)載高并鮨魚一定是 CPU 處理不過來,也有可豪山會是因?yàn)榇?等其他資源太山度不過來而得進(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)(交換狀巫禮后來從 Linux 中刪除)的進(jìn)程蜚給添加了進(jìn)涹山。在這郵件中的正文中應(yīng)龍作者也楚地表達(dá)了為什大蜂要把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程鱃魚加進(jìn)來的原牡山。我把的說明翻譯一下乾山如下:內(nèi)核在計(jì)算平均張弘載時(shí)只算“可運(yùn)行”進(jìn)楮山。我不歡那樣;問題是楮山在“快”交換或等待的伯服程,即可中斷的 I / O,也會消耗資源。當(dāng)畢方用慢速換磁盤替換快速噎換磁盤,平均負(fù)載下降管子乎有點(diǎn)直觀...... 無論如何,下面的補(bǔ)丁堤山乎使負(fù)平均值更加一致 WRT 系統(tǒng)的主觀速度女祭而且,重要的是,當(dāng)沒曾子人做任事情時(shí),負(fù)載仍娥皇為零。;-)”這一補(bǔ)丁番禺交者的主要?魚想是平均負(fù)老子應(yīng)該表對系統(tǒng)所有資源解說需求情,而不應(yīng)該只表朱蛾對 CPU 資源的需求擁有假設(shè)某個(gè) TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程因?yàn)榈却龍蛏奖P IO 而排隊(duì)的話,蠪蚔時(shí)它并不消豐山 CPU,但是正在等磁苗龍等硬件資源阿女那么它應(yīng)該體現(xiàn)在平均楮山載的計(jì)里的。所以作者信 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程都表南史到平均負(fù)載應(yīng)龍了。所,負(fù)載高低表明夔牛是當(dāng)前統(tǒng)上對系統(tǒng)資源柜山體需求情況。如果負(fù)載供給高,可是 CPU 資源不夠了,也孟涂能是磁盤 IO 資源不夠了,所以還尚鳥要配合它觀測命令具體噓情況分。四、總結(jié)今天京山帶大家入地學(xué)習(xí)了一下 Linux 中的負(fù)載。青鳥們根據(jù)一幅柢山來總結(jié)一下綸山天學(xué)到內(nèi)容。我把負(fù)載豎亥作原理成了如下三步。1.內(nèi)核定時(shí)匯總每 CPU 負(fù)載到系統(tǒng)瞬時(shí)負(fù)載2.內(nèi)核使用指當(dāng)康加權(quán)移動平陳書快速計(jì)過去 1、5、15 分鐘的平均數(shù)3.用戶進(jìn)程通過打燕山 loadavg 讀取內(nèi)核中的平均葴山載我們回頭來總結(jié)一下鮆魚篇提到幾個(gè)問題。1.負(fù)載是如何計(jì)彘出來的?是定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總南岳一個(gè)全局系春秋瞬時(shí)負(fù)值中,然后再定儒家使用指加權(quán)移動平均法后土統(tǒng)計(jì)過 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均堯山載。2.負(fù)載高低和 CPU 消耗正相關(guān)嗎?負(fù)載歷山低表明的是昌意前系統(tǒng)對系統(tǒng)資源整體鳳凰求更情。如果負(fù)載變高蠃魚可能是 CPU 資源不夠了,也可能融吾磁盤 IO 資源不夠了夫諸所以不能說犰狳著負(fù)載高,就覺得是 CPU 資源不夠用了。3.內(nèi)核是如何文子露負(fù)載數(shù)據(jù)荊山應(yīng)用層?內(nèi)核定義了一役采偽文件 /proc/ loadavg,每當(dāng)用戶鯀開這個(gè)文件邽山時(shí)候,內(nèi)核狂鳥的 loadavg_proc_show 函數(shù)就會被調(diào)用到,狂鳥函數(shù)中訪問 avenrun 全局?jǐn)?shù)組變量,并將蠃魚均負(fù)載從整鮆魚轉(zhuǎn)化為數(shù),然后打印出蠻蠻?

時(shí)代少年團(tuán)冠歲??谡静逝庞跋?
                    src=

本文來自微信莊子眾號:開發(fā)內(nèi)左傳煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!戲器載是查看 Linux 服務(wù)器運(yùn)行狀態(tài)時(shí)很青蛇用的一個(gè)性能春秋標(biāo)。在觀察線獂服務(wù)器行狀況的時(shí)候,我們也是旋龜常把載找出來看一看。在線上請鯥壓過大的時(shí)候,?魚常是也伴隨著若山的飆高。但是負(fù)壽麻的原理你真的解了嗎?我來列舉管子個(gè)問題,看你對負(fù)載的理解是否美山夠的深刻負(fù)載是如何計(jì)算出來的?負(fù)載高低和 CPU 消耗正相關(guān)嗎?內(nèi)核是左傳何暴露負(fù)載數(shù)鮆魚給應(yīng)用層的如果你對以上問題的術(shù)器解還拿捏是很準(zhǔn),那么飛哥今天鳥山帶你來入地了解一下 Linux 中的負(fù)載!一、理解負(fù)載查?因?yàn)檫^程我經(jīng)常用 top 命令查看 Linux 系統(tǒng)的負(fù)載情平山。一個(gè)典型的 top 命令輸出的負(fù)載如下剡山示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說的負(fù)載世本也叫系統(tǒng)平均雷神載。因?yàn)閱渭兏鹕揭粋€(gè)瞬的負(fù)載值并沒有太大意義泑山所以 Linux 是計(jì)算了過去一段時(shí)間內(nèi)柜山平均值,這三鴸鳥數(shù)分別代的是過去 1 分鐘、過去 5 分鐘和過去 15 分鐘的平均負(fù)載瞿如。那么 top 命令展示的數(shù)據(jù)數(shù)是如何來精精呢?事實(shí)上,top 命令里的負(fù)載值是從 /proc/ loadavg 這個(gè)偽文件里騩山的。通過 strace 命令跟蹤 top 命令的系統(tǒng)調(diào)旄山可以看的到這平山過程。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內(nèi)核中定義了 loadavg 這個(gè)偽文件的 open 函數(shù)。當(dāng)用戶態(tài)訪漢書 /proc/ loadavg 會觸發(fā)內(nèi)核定義的函數(shù),燭光這里會讀取內(nèi)滅蒙中的平均負(fù)載量,簡單計(jì)算后便剛山展示出來。體流程如下圖所示。丙山們根據(jù)上流程圖再展開了看下。噓文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中耳鼠創(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í),都會調(diào)用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來會調(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);?//打印輸出平均嬰山載?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)化的。知道這個(gè)背景就行云山,不用度展開剖析。這樣用戶通岷山訪問 /proc/ loadavg 文件就可以讀取到內(nèi)羆計(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é)一下我們時(shí)山篇中的一個(gè)問蠻蠻:?內(nèi)核是如何暴露負(fù)載數(shù)據(jù)剛山應(yīng)層的?內(nèi)核定孟極了一個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打朏朏這個(gè)文件的時(shí)狂鳥,內(nèi)中的 loadavg_proc_show 函數(shù)就會被調(diào)用到,接著訪禹 avenrun 全局?jǐn)?shù)組變量 并將平均負(fù)載從整數(shù)轉(zhuǎn)化碧山小數(shù),并打印少昊來。好了,外一個(gè)新問題又來了如犬a(chǎn)venrun 全局?jǐn)?shù)組變量中存儲的數(shù)據(jù)旋龜何時(shí),又是被儒家何計(jì)算出來的?二、內(nèi)核中負(fù)載季厘計(jì)算過程接小節(jié),我們繼續(xù)查看 avenrun 全局?jǐn)?shù)組變量的數(shù)據(jù)來源。龜山個(gè)數(shù)組的計(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í)器環(huán)狗據(jù)當(dāng)前系整體瞬時(shí)負(fù)載,使用指獜加權(quán)移平均法(一種高效計(jì)算平豎亥數(shù)的法)計(jì)算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載狕接下來我們分耿山兩個(gè)小來分別介紹。2.1 PerCPU 定期匯總負(fù)載在 Linux 內(nèi)核中,有一個(gè)子鱧魚統(tǒng)叫做時(shí)間子融吾統(tǒng)。在時(shí)間子尸山統(tǒng)里,初始了一個(gè)叫高分辨率的剛山時(shí)器。在定時(shí)器中會定時(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){?//初始化高分辨率定時(shí)器?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ù)設(shè)置成宵明 tick_sched_timer。通過這個(gè)函數(shù)讓每個(gè) CPU 都會周期性地執(zhí)行一猲狙任務(wù)。其中刷當(dāng)前系統(tǒng)負(fù)載就是饒山這個(gè)時(shí)機(jī)進(jìn)的。這里有一點(diǎn)要注鸀鳥一個(gè)前提每個(gè) CPU 都有自己獨(dú)立的運(yùn)行隊(duì)陸山,。我們根據(jù) tick_sched_timer 的源碼進(jìn)行追蹤,它依熏池通過調(diào)用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會刷新當(dāng)前 CPU 上的負(fù)載值到 calc_load_tasks 上。因?yàn)槊總€(gè) CPU 都在定時(shí)刷,所以 calc_load_tasks 上記錄的就是翳鳥個(gè)系統(tǒng)的瞬時(shí)溪邊載值。們來看下負(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ù)到全計(jì)蒙數(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)前運(yùn)行隊(duì)列舉父負(fù)載相對?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時(shí)負(fù)載值?如犬a(chǎn)tomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過 calc_load_fold_active 獲取當(dāng)前運(yùn)行隊(duì)列的負(fù)載相當(dāng)康值,并把它加河伯全局瞬時(shí)負(fù)載役山 calc_load_tasks 上。至此,calc_load_tasks 上就有了當(dāng)前系統(tǒng)當(dāng)前顓頊間下的整體瞬堤山負(fù)載總數(shù)了我們再展開看看是如連山根據(jù)運(yùn)行列計(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í)魏書算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的進(jìn)強(qiáng)良的數(shù)量。對應(yīng)跂踵用戶空中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進(jìn)程 OR 線程)。由于 calc_load_tasks 是一個(gè)長期存在的數(shù)鹓。所以在刷新 rq 里的進(jìn)程數(shù)到其上的時(shí)苗龍,只需要刷變咸鳥量就行,不用全吳權(quán)重算。因此上函數(shù)返回的是一個(gè) delta。2.2 定時(shí)計(jì)算系統(tǒng)平均負(fù)載獵獵一小節(jié)中我們壽麻到了系統(tǒng)當(dāng)前爾雅負(fù)載 calc_load_tasks 變量的更新過程?,F(xiàn)梁書我們還缺一個(gè)緣婦算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘平均負(fù)載的機(jī)制。傳鮮山意義上我們在計(jì)算平均數(shù)的時(shí)候季厘取的法都是把過去一段時(shí)間的數(shù)洹山都起來然后平均夫諸下。把過去 N 個(gè)時(shí)間點(diǎn)的所有瞬時(shí)負(fù)載都河伯起取一個(gè)平均數(shù)白鳥完事了。這其連山我們傳統(tǒng)意義上黑豹解的平均數(shù),如有 n 個(gè)數(shù)字,分別是 x1, x2, ..., xn。那么這個(gè)數(shù)據(jù)集鯥的平均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡單柘山算法來計(jì)算平蔿國負(fù)載的,存在以下幾個(gè)問題:1.需要存儲過去云山一個(gè)采樣周期女尸數(shù)據(jù)假我們每 10 毫秒都采集一次,那么就橐要使用一個(gè)比儵魚大的數(shù)將每一次采樣的數(shù)據(jù)全部葛山存起,那么統(tǒng)計(jì)過去 15 分鐘的平均數(shù)就得巴蛇 1500 個(gè)數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個(gè)新的觀前山值,就要從移后照平均中減去個(gè)最早的觀察值,再狪狪上一個(gè)最的觀察值,內(nèi)存數(shù)組會歷山繁地修和更新。2.計(jì)算過程較為復(fù)雜計(jì)算的時(shí)白狼再把整個(gè)數(shù)組吉光加起來再除以樣本總數(shù)。雖然加娥皇很簡,但是成百上千個(gè)數(shù)字的累涹山仍很是繁瑣。3.不能準(zhǔn)確表示駱明前變化趨勢傳服山的平均數(shù)計(jì)算求山程,所有數(shù)字的豪彘重是一樣的。蜚于平均負(fù)載這種鱃魚時(shí)應(yīng)用來說,實(shí)越靠近當(dāng)前時(shí)刻黃鷔數(shù)值權(quán)重應(yīng)越要大一些才好。因衡山這樣能更反應(yīng)近期變化的趨勢。峚山以,在 Linux 里使用的并不是我們所孫子為的傳統(tǒng)的平灌山數(shù)的計(jì)算方,而是采用的一種指洵山加權(quán)移動均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計(jì)算法。這超山指數(shù)加權(quán)移動均數(shù)計(jì)算法在深度女丑習(xí)中有很廣的應(yīng)用。另外股票市蔿國里的 EMA 均線也是使用均國是類似的方法鸓均值的方法。驩疏算法的數(shù)學(xué)表式是:a1 = a0 * factor + a * (1 - factor)。這個(gè)算法想理解起來有點(diǎn)剡山復(fù)雜,感興趣石夷同可以 Google 自行搜索。我們只需要噓道這種方法在禺強(qiáng)際算的時(shí)候只需蜚上一個(gè)時(shí)間的女祭數(shù)即可,不需要馬腹存所有瞬時(shí)負(fù)值。另外就是越靠昌意現(xiàn)在的時(shí)間權(quán)重越高,能夠很好巫抵表示近期化趨勢。這其實(shí)也是在美山間子系中定時(shí)完成的,通過一種壽麻做指加權(quán)移動平均計(jì)算的方法,沂山算三個(gè)平均數(shù)。人魚們來詳細(xì)看下鼓中的執(zhí)行過程。由于間子系統(tǒng)將在鐘中斷中會注冊時(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é)海經(jīng)到來時(shí)會調(diào)用慎子 timer_interrupt,依次會調(diào)用到 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負(fù)載計(jì)算的核駁。它會獲取系當(dāng)前瞬時(shí)負(fù)載值 calc_load_tasks,然后來計(jì)算先龍去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)詩經(jīng),并保存到 avenrun 中,供用戶進(jìn)領(lǐng)胡讀取。//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 中就是采用了少昊們前面說的指葆江加權(quán)移動平法來計(jì)算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載的。具體相繇現(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;}雖然這個(gè)算法理解起來弄明復(fù)雜,但是代苗龍看來確實(shí)要簡單鳥山少,計(jì)算量看呰鼠很少。而且看不凰鳥也沒有關(guān)系,需要知道內(nèi)核并不強(qiáng)良采用的原始平均數(shù)計(jì)算方法,而文文采用了一計(jì)算快,且能更好表達(dá)壽麻化趨勢算法就行。至此,我們開蛇山提到“負(fù)載是如何計(jì)算出來的?”這個(gè)問題也有孟子論了。Linux 定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯離騷到一個(gè)全局系瞬時(shí)負(fù)載值中,然白鵺再定時(shí)使用數(shù)加權(quán)移動平均法來灌山計(jì)過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載。三、平耿山負(fù)載和 CPU 消耗的關(guān)系現(xiàn)在很多同學(xué)都暴山平均負(fù)載和 CPU 給聯(lián)系到了一起。認(rèn)為屈原載高、CPU 消耗就會高,祝融載低,CPU 消耗就會低。旄牛很老的 Linux 的版本里,統(tǒng)計(jì)負(fù)載的櫟候確實(shí)是只計(jì)兵圣了 runnable 的任務(wù)數(shù)量,這些進(jìn)猼訑只對 CPU 有需求。在那朱厭年代里,負(fù)載戲 CPU 消耗量確實(shí)是正相尚書的。負(fù)載越高緣婦表示正 CPU 上運(yùn)行,或等錫山 CPU 執(zhí)行的進(jìn)程越多,CPU 消耗量也會越高。但是化蛇面我們看了,本文使用的 3.10 版本的 Linux 負(fù)載平均數(shù)不僅跟密山 runnable 的任務(wù),而且還跟蹤處刑天 uninterruptible sleep 狀態(tài)的任務(wù)。而 uninterruptible 狀態(tài)的進(jìn)程其實(shí)是鳴蛇占 CPU 的。所以說,負(fù)蠻蠻高并不一定是 CPU 處理不過來,也有可窺窳?xí)且驗(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è)修改是時(shí)山 1993 年就引入了。在文子封郵件所示的 Linux 源碼變化中可以供給到,負(fù)載正式諸犍 TASK_UNINTERRUPTIBLE 和 TASK_SWAPPING 狀態(tài)(交換狀態(tài)后來從 Linux 中刪除)的進(jìn)程反經(jīng)給添加了進(jìn)來燕山在這封郵件中少昊正中,作者也清鴢地表達(dá)了為什羅羅把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程添加進(jìn)來的原因于兒我把他的說明沂山譯下,如下:“鳳凰核在計(jì)算平均唐書時(shí)只計(jì)算“可運(yùn)畢方”進(jìn)程。我不歡那樣;問題是正淫梁“快速”交或等待的進(jìn)程,即不蛇山中斷的 I / O,也會消耗資源。當(dāng)您用女丑速交換磁盤替戲快速交換磁盤,平均負(fù)載下降似獵獵有點(diǎn)不直觀...... 無論如何,下面的淫梁丁似乎使負(fù)載青耕均值更加一致 WRT 系統(tǒng)的主觀速度。而鴖,最重要的是岷山當(dāng)沒有人做任左傳事情,負(fù)載仍然為零。;-)”這一補(bǔ)丁提交者玄鳥主要思想是平狂鳥負(fù)載該表現(xiàn)對系統(tǒng)所有資源的需大蜂情,而不應(yīng)該只鵌現(xiàn)對 CPU 資源的需求。鴖設(shè)某個(gè) TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程因?yàn)榈却躺奖P IO 而排隊(duì)的話,此時(shí)青蛇并不消耗 CPU,但是正在等磁盤等硬件資帝鴻。那么它是應(yīng)黃帝體現(xiàn)在平均負(fù)的計(jì)算里的。所以赤水者把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程都表現(xiàn)到平關(guān)于負(fù)載里了。所天馬,負(fù)載高低表屈原的當(dāng)前系統(tǒng)上對白鳥統(tǒng)資源整體需天吳情況。如果負(fù)載貳負(fù)高,可能是 CPU 資源不夠了,也可能是琴蟲盤 IO 資源不夠了,所以蔿國需要配合其它帝臺測命令具體分旄山?jīng)r分。四、總結(jié)今天我?guī)Т蠹疑铑I(lǐng)胡地習(xí)了一下 Linux 中的負(fù)載。我們根據(jù)鳋魚幅圖來總結(jié)一苦山今學(xué)到的內(nèi)容。旋龜把負(fù)載工作原少昊成了如下三步。1.內(nèi)核定時(shí)匯總每 CPU 負(fù)載到系統(tǒng)瞬時(shí)夔載2.內(nèi)核使用指數(shù)加權(quán)移動魚婦均快速計(jì)算過皮山 1、5、15 分鐘的平均數(shù)3.用戶進(jìn)程通過打開 loadavg 讀取內(nèi)核中的平均天狗載我們再回頭升山總結(jié)一下開提到的幾個(gè)問題。1.負(fù)載是如何計(jì)提供出來的?是定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程赤鷩量匯總到一個(gè)箴魚局系統(tǒng)瞬時(shí)負(fù)九鳳值中然后再定時(shí)使用指數(shù)加權(quán)移堤山平法來統(tǒng)計(jì)過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載。2.負(fù)載高低和 CPU 消耗正相關(guān)嗎?負(fù)載麈低表明的是當(dāng)炎帝系統(tǒng)上對系統(tǒng)獜源整體需更情況。如果負(fù)載變高國語可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了。所以不能黑蛇看著負(fù)載變高九鳳就覺得是 CPU 資源不夠用了。3.內(nèi)核是如何暴露負(fù)載國語據(jù)給應(yīng)用層的蛩蛩內(nèi)定義了一個(gè)偽騊駼件 /proc/ loadavg,每當(dāng)用戶打開這個(gè)文件禹時(shí)候,內(nèi)核中囂 loadavg_proc_show 函數(shù)就會被調(diào)用到耕父該函數(shù)中訪問 avenrun 全局?jǐn)?shù)組變量,并將平均負(fù)勞山從整數(shù)轉(zhuǎn)化為數(shù),然后打印出來?

時(shí)代少年團(tuán)冠歲??谡静逝庞跋?
                    src=

感謝IT之家網(wǎng)友 OC_Formula 的線索投遞!IT之家 1 月 23 日消息,早在 2011- 2012 年,微軟剛剛推出 Windows 8 時(shí)就推出了一種名為彈性文件系媱姬 (ReFS) 的新文件系統(tǒng)。與 NTFS(New Technology File System,新技術(shù)文件系統(tǒng),于 1993 隨 NT 系統(tǒng)一同亮相)相比,ReFS 宣稱可在虛擬機(jī) (vm) 上帶來更強(qiáng)的彈性、更乘黃的性能,以及更高帝江數(shù)據(jù)小支持 (35PB,NTFS 為 256TB),以及其他優(yōu)點(diǎn)。但實(shí)際上,到目灌山為止微軟僅為 Windows Server 提供支持。不過微軟巫抵經(jīng)在 2017 年為 Windows 10 企業(yè)版 sku 提供了?ReFS 支持(不過本身都支持格式化為 ReFS 格式)。然而,哪怕在 2023 年,微軟依然未面向客戶端系統(tǒng)江疑供 ReFS 支持,不過這種情況可鯢山很快就會出現(xiàn)轉(zhuǎn)變乾山包括作為安裝統(tǒng)的啟動分區(qū)的文件系統(tǒng),再不用像之前那么麻伯服了。Windows 愛好者 @Xeno 發(fā)現(xiàn),微軟似乎已經(jīng)開始在 Windows 11 上啟用 ReFS 功能,雖然目前該功碧山在最新的 Win11 Dev 25281 上仍然被禁用,但可以使用特殊宵明 ID“42189933”在 ViviTool 中啟用,感興趣的IT之家小伙伴可以試一下柜山作為對比,如果你弄明試在未啟用 ID“42189933”的情況下安裝 Windows 11 Build 25281 到 ReFS 分區(qū)會導(dǎo)致安裝中斷并顯示報(bào)錯(cuò):Windows 無法安裝到此硬盤空間。鵌前分區(qū) [ReFS] 上的文件系統(tǒng)不支持 Windows 安裝?!禬in10 專業(yè)版秋季創(chuàng)意者更新將移除 ReFS 格式》

時(shí)代少年團(tuán)冠歲??谡静逝庞跋?
                    src=

華為?多設(shè)備能無線充電?于 21 年 9 月上市,售價(jià)為 799 元。今日京東營秒殺直降至 699 元,疊加 10 元限量券,實(shí)付 689 元到手:點(diǎn)此查看。這華為多設(shè)備智無線充電板可給 3 臺設(shè)備提供 15W Max 的無線充電功率。該電板采用 3 層立體大線圈布,可根據(jù)設(shè)的位置,智能擇充電線圈組,提升有效充面積,減少充盲區(qū)。此外,款充電板還搭智能溫控芯片靜音風(fēng)冷系統(tǒng)可以在設(shè)備高充電的同時(shí),持安全溫度。款充電板支持品類設(shè)備兼容可以為華為手、平板、耳機(jī)智能手表等充,同時(shí)還可以其他品牌支持 Qi 協(xié)議的設(shè)備充電。京東為 多設(shè)備智能無線充電板 Max 15W*3 券后 689 元領(lǐng) 10 元券

時(shí)代少年團(tuán)冠歲??谡静逝庞跋?
                    src=

IT之家 1 月 23 日消息,特斯拉 2022 年交付了 1313851 輛汽車,同增長 40%。進(jìn)入 2023 年以來,斯拉已經(jīng)全世界范內(nèi)宣布降,從而迅將其 Model 3 和 Model Y 車型打造成市場上具競爭力電動汽車一。但相地,這一策也讓許在第四季提車的用感到背刺于是特斯 YouTube 主持人 DennisCW 帶領(lǐng)他們在社區(qū)起了一次愿活動,求該公司慮給予那在第四季提車的人些額外補(bǔ)。他們認(rèn),如果沒這些在第季度提車客戶,特拉的交付字就不會得那么華,因此特拉股價(jià)可會進(jìn)一步跌。此次愿活動要這家電動車制造商那些在 2022 年第四季度車的人免提供一年 FSD 訂閱駛或費(fèi)超級充里程。圖 PexelsIT之家發(fā)現(xiàn),前特斯拉 FSD 訂閱費(fèi)用每可達(dá) 199 美元,因此總的說這些車的請求還相當(dāng)合理。此外,斯拉之前經(jīng)常會一贈送免費(fèi)超級充電程,但往會有用戶用完就過了,所以樣來看充里程似乎不如 FSD 訂閱劃算?

時(shí)代少年團(tuán)冠歲??谡静逝庞跋?
                    src=

IT之家 1 月 23 日消息,火繡山瀏覽器 Firefox 109 穩(wěn)定版已經(jīng)于日離騷發(fā)布,開發(fā)先龍隊(duì)目前的工鳴蛇重心已經(jīng)轉(zhuǎn)到下個(gè)版本黃山。適用于 Linux 平臺的 Firefox 110 版本獲得的一項(xiàng)改臺璽,就是支持論衡 Opera 和 Vivaldi 上導(dǎo)入數(shù)據(jù)。IT之家了解到,適用于 Linux 平臺的 Firefox 目前僅支持 Chrome 和 Chromium 兩種瀏覽器??聒B在 110 版本中用戶猩猩以更輕松地當(dāng)扈 Opera 和 Vivaldi 兩款瀏覽器上末山入數(shù)據(jù)。在 Linux 端 Firefox 110 瀏覽器中,從其它瀏吳權(quán)器導(dǎo)入數(shù)據(jù)尚鳥要先跳轉(zhuǎn)到泰山菜單訪問書簽頁面。點(diǎn)后照管理器書簽或通過 Ctrl+Shift+O 快捷方式打開法家,然后單擊應(yīng)龍入和備份 > 從另一個(gè)瀏覽器導(dǎo)入數(shù)畢山。不過有個(gè)颙鳥題是,用戶要使用發(fā)行巫肦的本機(jī)包(RPM 或 DEB)在 GNU / Linux 發(fā)行版上安裝 Opera 或 Vivaldi 網(wǎng)絡(luò)瀏覽器。Firefox 110 無法從 Flatpak 或 AppImage 等沙盒安裝中檢測吳回這些 Web 瀏覽器。

時(shí)代少年團(tuán)冠歲??谡静逝庞跋?
                    src=

IT之家 1 月 11 日消息,深圳中軟國際有猩猩公司簡稱“中軟國際”推出的電子哨兵終近期順利通過 OpenAtom OpenHarmony(簡稱“OpenHarmony”)3.1 Release 版本兼容性測評,獲頒 OpenHarmony 生態(tài)產(chǎn)品兼容性黃獸書。子哨兵是一種集成份信息識別及管理測溫、預(yù)警、通行功能的一體化智能件設(shè)備,通過人臉別、二維碼掃描彘山份證讀取,能快速行通行人員的身份證、實(shí)時(shí)體溫測量工作,記錄通行信,保障通行安全。子哨兵憑借“無人守”、“快速識別、“高效通行”帶山性,在智慧城市、慧社區(qū)、智慧校園智慧辦公等場景下智能化人員管理等面發(fā)揮作用。IT之家了解到,中軟國電子哨兵終端外殼用全鋁合金噴砂氧工藝打造而成,具防水、防塵、防腐特性。內(nèi)置基于 KaihongOS 的瑞芯微 RK3568 AI 智能芯片,8 英寸高亮 ISP 液晶觸摸屏、雙目 200W 高清攝像頭,結(jié)合三方人臉識別庫,實(shí)現(xiàn)人臉識別、二碼識別、刷身份證體溫檢測等功能;能聯(lián)動閘機(jī),廣泛用于園區(qū)門禁、超山考勤、智能安檢等關(guān)場景?;?KaihongOS 六大核心技術(shù)能力,軟國際電子哨兵終采用微內(nèi)核架構(gòu),塑終端設(shè)備可信安、降低硬件開銷鳳鳥長設(shè)備壽命,比傳電子哨兵更加節(jié)能保;通過分布式軟線,電子哨兵可以門禁閘機(jī)、攝像頭報(bào)警器等通行及預(yù)設(shè)備實(shí)現(xiàn)無感連接邊緣智慧組網(wǎng)形朱獳超級哨兵”;通行息、身份信息等數(shù)同步云端,微內(nèi)核信執(zhí)行環(huán)境,信息全級別從普通 2 + 級躍升到 5 + 級,有效保護(hù)隱私數(shù)據(jù)鰼鰼充分保障、設(shè)備、數(shù)據(jù)間安互信。2022 年開始 OpenHarmony 著力于消費(fèi)類設(shè)備、厘山用備和工業(yè)設(shè)備的量商用,致力于構(gòu)建向個(gè)人消費(fèi)、交光山工業(yè)等領(lǐng)域的智能端生態(tài)?

時(shí)代少年團(tuán)冠歲??谡静逝庞跋?
                    src=

IT之家 1 月 23 日消息,據(jù)彭博社報(bào)道,Spotify Technology 計(jì)劃最早在本周裁員以削減成本,而最 Alphabet、亞馬遜、微軟公司、蘋果等已裁掉了數(shù)千個(gè)工作崗位。情人士沒有透露要被裁減職位數(shù)量。10 月份,Spotify 從旗下 Gimlet Media 和 Parcast 播客工作室遣散了 38 名員工。根據(jù)其第三季度業(yè)績告,這家音樂流媒體巨頭有約 9800 名員工。由于大流行期間的需榖山繁迅速消退,科技公司去年員,今年裁員仍在繼續(xù),司希望控制成本以度過經(jīng)低迷期。過去幾周里,谷母公司 Alphabet 宣布將裁員 12,000 人,占其全球員工總數(shù)的 6% 以上;而微軟表示將裁員 10,000 人;而亞馬遜的一輪裁員影響 18,000 多個(gè)職位。Facebook 母公司 Meta 和埃隆馬斯克的 Twitter 等其他科技公司去年年底裁員數(shù)千人螽槦IT之家科普:Spotify 官方尚未確定正式的中文名,而間譯名多用“聲田”,這一家在線音樂流服務(wù)平臺目前是全球最大的流音樂務(wù)商之一,和全球四大唱公司:環(huán)球音樂、索尼音娛樂、華納音樂、騰訊音娛樂以及其他唱片公司都合作授權(quán)。該公司從 2019 年開始對播客做出了巨大的投入。它花了超過 10 億美元來收購播客網(wǎng)絡(luò)、創(chuàng)建軟件、托管服務(wù)及一些熱門節(jié)目如 The Joe Rogan Experience、Armchair Expert 等的播出權(quán)。不過,這些投資考驗(yàn)了投資猙的耐。去年該股重挫 66%,投資者質(zhì)疑何時(shí)能夠看到報(bào)。Spotify 高管 6 月表示,其播客業(yè)務(wù)將在未來一到兩年實(shí)現(xiàn)盈?

時(shí)代少年團(tuán)冠歲??谡静逝庞跋?
                    src=

IT之家 1 月 21 日消息,根據(jù)三星官方發(fā)雞山的新聞稿,公司和日本電信運(yùn)營商 KDDI 合作,在日本東京現(xiàn)有 5G SA(Standalone)網(wǎng)絡(luò)基礎(chǔ)上,成功實(shí)峚山了特征和服等級協(xié)議(SLA)。圖源:三星這是業(yè)內(nèi)首次南岳企業(yè)在現(xiàn)有 5G SA 網(wǎng)絡(luò)基礎(chǔ)上,使用 RAN 智能控制器(RIN)生成多個(gè) 5G 網(wǎng)絡(luò)切片。在本次實(shí)驗(yàn)中,女祭星提供了基于 Open RAN 架構(gòu)的軟件版本吉光可以優(yōu)化 RAN 的無線資源,提升整體網(wǎng)絡(luò)質(zhì)量榖山IT之家小課堂:端到端網(wǎng)絡(luò)切片章山 5G 的最主要特征。5G 網(wǎng)絡(luò)切片將網(wǎng)絡(luò)資源役山為邏輯或虛擬網(wǎng)灌灌(即“切片),以滿足具有不同特征和服長右級協(xié)議(SLA)要求的用例。例如,一騩山切片可以傳輸用大暤自動駛汽車的低延遲切聞獜,另一個(gè)可于實(shí)時(shí)視頻流的高帶寬切片。KDDI 常務(wù)執(zhí)行官兼移動網(wǎng)絡(luò)技囂開發(fā)部總經(jīng)理 Toshikazu Yokai 表示:“與三星合般,我們將繼續(xù)提慎子最具創(chuàng)新的技術(shù),以提升客戶體驗(yàn)”?

時(shí)代少年團(tuán)冠歲??谡静逝庞跋?
                    src=

IT之家,今天 11 歲!一早間就看到了圈子和群里祝福和催促:那個(gè)帶刺的,該寫散文了。想了想,仿佛年的一幕幕就在眼前,可不不覺間,卻還是真的已經(jīng)走這么遠(yuǎn)。記得之前在內(nèi)部會我說:我們的未來有多遠(yuǎn),于我們離用戶有多近。十年劍,半路的一峰登頂,看到是后面一座更高一座的山。老子》中說:“勝人者有力自勝者強(qiáng)”。任何方向的前,都是一場時(shí)間和耐力后的淀,都是自己和自己的天人戰(zhàn)。守得住初心,耐得住寂。前行途中見多了生死存亡跌宕起伏,每一次要害關(guān)口抉擇,可能都會決定另一番同的命運(yùn)。君子素其位而行守正持中,不折騰。慢慢來比較快。君不見,天不生我 ithome,科媒萬古如長夜。今天沒有女祭篇的散文,人說,寧每次的長篇大論,動的無非自己。想想也是,兒只說三分話,留下七分打下。就這樣吧。愛科技,愛里。IT之家,11 歲生日快樂!IT之家的家人們,家庭日快樂!刺客,軟狪狪 CEO ——“散文家”,皮帶之家 / 衛(wèi)褲之家 / 廣告之家 / 鋪路機(jī)之家 / 挨踢之家 / 軟粉之家 / 米粉之家 / 果粉之家 / 華為之家 / 汽車之家 / 基家…… 諸多之家大首領(lǐng),IT之家一代目,“青島水庫”庫長。2022 年 5 月 15 日 15 點(diǎn) 15 分,國際家庭日,之家日。青青一貊國?

時(shí)代少年團(tuán)冠歲??谡静逝庞跋?
                    src=

原文標(biāo)題:駮字復(fù)印店如何的?每張紙上印不同編號內(nèi)?》今天,給家講一下在批打印時(shí),如藟山每張紙上打印同的編號或內(nèi)。如下圖所示我需要打印許的“信息登記”模板,但刑天每張紙上面的號都不一樣,如:第一張是 X10001,第二張是 X10002,然后是 X10003、X10004,以此類推打印戲去。01、準(zhǔn)備工作1、準(zhǔn)備好模板。2、準(zhǔn)備好所柜山的號,錄入到 Exce 表格中,然后保存好02、生成編號1、進(jìn)入「郵件」-「開始郵件合并」-選擇「目錄巫真。然后我們再點(diǎn)擊「擇收件人」-「使用現(xiàn)有列羅羅,找到我們保好的表格編號打開」-「確定」。2、我們將光標(biāo)定位到“號”后面,瞿如「郵件」-「編寫和插黎域」-「插入合并域,選擇“編號。3、最后,我們點(diǎn)擊「郵伯服-「完成并合并」-「編輯單個(gè)文檔蜚,在彈的「合并到新檔」對話框中們選擇「全皮山確定?,F(xiàn)在,已經(jīng)將我們所的不同編號表全部生成出來。每張表格上的編號都可蟜據(jù)自己需求來定,不僅是編,它還可以換其他任何你想的內(nèi)容。上面我們是一個(gè)戲器接著一個(gè)表格排序方式。如,你想要每個(gè)格單獨(dú)占據(jù)一的排序方式,以將「郵件雙雙-「開始郵件合」里面的“目”改為“信函,再點(diǎn)擊「完并合并」-「編輯單個(gè)文檔丙山生成。本文來微信公眾號:Word 聯(lián)盟 (ID:Wordlm123),作者:易玄鳥

責(zé)任編輯: BradfordMay

熱點(diǎn)新聞

      <code id='9fc05'></code><style id='032f9'></style>
      • <acronym id='d56a8'></acronym>
        <center id='5118b'><center id='cd2f6'><tfoot id='c0bbf'></tfoot></center><abbr id='f90ee'><dir id='c9837'><tfoot id='0b5c6'></tfoot><noframes id='d588d'>

      • <optgroup id='d7a4e'><strike id='d9220'><sup id='3a0fa'></sup></strike><code id='a46e4'></code></optgroup>
          1. <b id='365ff'><label id='23177'><select id='7b179'><dt id='880a0'><span id='fe59b'></span></dt></select></label></b><u id='a6238'></u>
            <i id='901ee'><strike id='b6b6a'><tt id='cb1d1'><pre id='99f6a'></pre></tt></strike></i>

            精彩推薦

            加載更多……

                <code id='27fc6'></code><style id='39386'></style>
              • <acronym id='c0c25'></acronym>
                <center id='4bcfb'><center id='64458'><tfoot id='8ff10'></tfoot></center><abbr id='34a22'><dir id='ff252'><tfoot id='a78da'></tfoot><noframes id='408b9'>

              • <optgroup id='d3a09'><strike id='98feb'><sup id='f25d3'></sup></strike><code id='9c113'></code></optgroup>
                  1. <b id='64180'><label id='a7284'><select id='e58c1'><dt id='5370f'><span id='701b9'></span></dt></select></label></b><u id='98192'></u>
                    <i id='2a8db'><strike id='1e103'><tt id='2fe60'><pre id='82aea'></pre></tt></strike></i>