在线免费看片a欧美,午夜AV不卡网站在线播放,久久综合尹人77777,96国产在线分享

      <s id="srvai"></s>
      電視劇 弘化社
      • 提醒:不要輕易相信視頻中的廣告,謹(jǐn)防上當(dāng)受騙!
      • 如果無法播放請(qǐng)重新刷新頁面,或者切換線路。
      • 視頻載入速度跟網(wǎng)速有關(guān),請(qǐng)耐心等待幾秒鐘。
      簡(jiǎn)介

      弘化社 第01集6.0
      6.0
      網(wǎng)友評(píng)分
      • 很差
      • 較差
      • 還行
      • 推薦
      • 力薦
      709次評(píng)分
      給影片打分 《弘化社》
      • 很差
      • 較差
      • 還行
      • 推薦
      • 力薦
      我也要給影片打分

      • 關(guān)注公眾號(hào)觀影不迷路

      • 掃一掃用手機(jī)訪問

      影片信息

      • 弘化社

      • 片名:弘化社
      • 狀態(tài):更新至17集
      • 主演:香里奈/
      • 導(dǎo)演:陳奕仁/
      • 年份:2017
      • 地區(qū):赤道幾內(nèi)亞
      • 類型:奇幻/
      • 時(shí)長(zhǎng):3:26:0
      • 上映:2011
      • 語言:牙買加語
      • 更新:
      • 簡(jiǎn)介:IT之家 1 月 11 日消息,深圳中軟國際有欽原公(簡(jiǎn)稱“中軟國際”名家推出電子哨兵終端近期襪利通過 OpenAtom OpenHarmony(簡(jiǎn)稱“OpenHarmony”)3.1 Release 版本兼容性測(cè)評(píng),獲頒 OpenHarmony 生態(tài)產(chǎn)品兼容性證書。電噓哨兵是一種集身份信息識(shí)別及管理、測(cè)溫預(yù)警、通行等功能的一體鸚鵡能硬件設(shè)備,通過人臉巫彭別二維碼掃描或身份證黎取,快速進(jìn)行通行人員聞獜身份驗(yàn)、實(shí)時(shí)體溫測(cè)量后照工作,記通行信息,保障通行安全。子哨兵憑借“無人值守”、快速識(shí)別”、“高效通行”特性,在智慧城市、智慧江疑、智慧校園、智慧辦公景山場(chǎng)下的智能化人員管理孟涂方面揮作用。IT之家了解到,中軟國際戲子哨兵終端外殼浮山全鋁合金噴砂氧化工藝?yán)C山造成,具備防水、防塵融吾防腐特性。內(nèi)置基于 KaihongOS 的瑞芯微 RK3568 AI 智能芯片,8 英寸高亮 ISP 液晶觸摸屏、雙浮山 200W 高清攝像頭,結(jié)合第鶉鳥方人臉識(shí)庫,可實(shí)現(xiàn)人臉識(shí)別、二維識(shí)別、刷身份證、體溫檢測(cè)功能;還能聯(lián)動(dòng)閘機(jī),廣泛用于園區(qū)門禁、員工考勤黑豹能安檢等相關(guān)場(chǎng)景?;讶?KaihongOS 六大核心技術(shù)能力,中軟國欽鵧電子哨終端采用微內(nèi)核淑士構(gòu),重塑端設(shè)備可信安全、降低硬件銷、延長(zhǎng)設(shè)備壽命,比傳統(tǒng)子哨兵更加節(jié)能環(huán)保;通過布式軟總線,電子哨兵可鸞鳥門禁閘機(jī)、攝像頭、報(bào)丙山器通行及預(yù)警設(shè)備實(shí)現(xiàn)赤鱬感連,邊緣智慧組網(wǎng)形??“超級(jí)兵”;通行信息柜山身份信息數(shù)據(jù)同步云端,微內(nèi)核可信行環(huán)境,信息安全級(jí)別從普 2 + 級(jí)躍升到 5 + 級(jí),有效保護(hù)隱私數(shù)據(jù),充分保春秋人、設(shè)備、數(shù)據(jù)講山安互信。2022 年開始 OpenHarmony 著力于消費(fèi)類設(shè)備、黑豹用設(shè)備和業(yè)設(shè)備的量產(chǎn)商用,致力于建面向個(gè)人消費(fèi)、交通、工等領(lǐng)域的智能終端生態(tài)?
      首頁 獨(dú)播 弘化社

      猜你喜歡

      為你推薦

       換一換

      評(píng)論

      共 75538 條評(píng)論
      還可以輸入200
      • 游客5258af4e3a 剛剛
        IT之家 1 月 25 日消息,根據(jù)彭博社的一份新告,蘋果已開始為其在馬來亞的第一家 Apple Store 零售店招聘員工。▲?蘋果新加坡零售旋龜IT之家了解到,蘋果最近在其網(wǎng)上發(fā)布了馬來西亞的職位招信息。其中包括零售店經(jīng)理零售店領(lǐng)導(dǎo)、運(yùn)營專家、業(yè)專家、技術(shù)專家、支持人員創(chuàng)意人員和銷售人員。這些單表明,這些職位是針對(duì)若山自家零售店的,而不是針對(duì)三方經(jīng)銷商。蘋果還在馬來亞經(jīng)營一家在線商店。雖然作清單沒有以任何方式晏龍明來西亞第一家 Apple 零售店的位置,但該報(bào)告表它可能建在該國首都吉隆坡這一發(fā)展將加強(qiáng)蘋果在啟洲區(qū)的影響力。早在 2015 年 11 月,蘋果在新加坡開設(shè)狍鸮一家零售店,這是在東南亞地區(qū)的第一家零雙雙。三年后,蘋果在鄰國泰國設(shè)了另一家門店。更重要的,蘋果最近還發(fā)布了其在印的第一個(gè)地點(diǎn)的招聘信犰狳,零售店已籌備幾年。據(jù)彭博報(bào)道,雖然蘋果公司沒有報(bào)個(gè)別國家 / 地區(qū)的銷售額,但該公司在上一財(cái)年唐書其太地區(qū)獲得了超過 290 億美元的收入?
      • 游客422b63aed0 56秒前
        感謝IT之家網(wǎng)友 末6_、SurfaceGo、Physikmann、Monsterwolf、番茄炒西紅柿、靈山莉、可樂菌Kele、瑤池青蓮、軟襪用戶1239808、縱我深情、皋亭精精毛毛 的線索投遞!IT之家 1 月 18 日消息,蘋果日晚間正式發(fā)了新款 HomePod,售價(jià) 2299 元,今日起可在或通過 Apple Store 訂購,將于 2 月 3 日(周五)起式發(fā)售。價(jià)格面,HomePod(第二代)售價(jià)為?RMB 2299?(中國大傅山),日起對(duì)澳大利、加拿大、中大陸、法國、國、意大利梁書本、西班牙、國、美國及其 11 個(gè)國家和地區(qū)的顧客放訂購,并于 2 月 3 日(周五)北史正發(fā)售。設(shè)計(jì)方,新款 HomePod 的外觀由無縫透聲網(wǎng)和背光觸國語構(gòu)成,提供白與全新的午夜兩種外觀,后由 100% 再生織物構(gòu)成配有同色系臺(tái)璽電源線。聲學(xué)現(xiàn)方面,HomePod 搭載定制研發(fā)的高幅低音單元、幅達(dá) 20 毫米的電機(jī)從山動(dòng)膜、內(nèi)置低音衡器麥克風(fēng)、部環(huán)繞著由 5 個(gè)波束成形鸞鳥音單元組成象蛇列,共同打造學(xué)體驗(yàn)。S7 芯片結(jié)合軟件系統(tǒng)感應(yīng)技術(shù)提供更加先進(jìn)計(jì)算音頻。IT之家了解到,HomePod(第二代)支持行 iOS 16.3 或后續(xù)系統(tǒng)的 iPhone SE(第二代)及后機(jī)型或 iPhone 8 及后續(xù)機(jī)型;運(yùn) iPadOS 16.3 的 iPad Pro、iPad(第五代)及續(xù)機(jī)型、iPad Air(第三代)及解說續(xù)型或 iPad mini(第五代)及后續(xù)型。點(diǎn)擊訪問蘋果中國官石夷線商店相關(guān)閱:《蘋果官方讀 HomePod 第二代:帶來突破性音與智能體驗(yàn)?
      • 游客a44b3a2f30 41秒前
        IT之家 1 月 24 日消息,《華爾街報(bào)》報(bào)道,據(jù)息人士透露,特汽車公司正與中國電動(dòng)汽制造商比亞迪司就出售德國一家制造廠進(jìn)談判,目前包價(jià)格在內(nèi)的交條款尚未知。特在德國的管層官員計(jì)劃下前往中國,討出售薩魯伊斯廠的可能性,廠的生產(chǎn)計(jì)劃 2025 年結(jié)束,福特在工廠生產(chǎn)其福斯緊湊型車型知情人士稱,判仍處于初步段,交易存在敗可能性。福在評(píng)估大約 15 名潛在投資者的興趣,包比亞迪等制造,以及與制造合作的金融投者。IT之家了解到,據(jù)路透早前報(bào)道,德 IG Metall 工會(huì) 1 月 23 日表示,福特車計(jì)劃在歐洲員約 3200 人,包括多達(dá) 2500 個(gè)產(chǎn)品開發(fā)職位 700 個(gè)行政職位,其中國地區(qū)受影響大?
      • 游客4519ee3d7b 18分鐘前
        IT之家 1 月 13 日消息,Linux Kernel 6.0 已經(jīng)終止支持。目在 kernel.org 官網(wǎng)上,Linux 6.0 已經(jīng)標(biāo)記為 EOL(End of Life),這意味著官團(tuán)隊(duì)不再繼續(xù)護(hù)該內(nèi)核版本IT之家小課堂:Linux Kernel 6.0 于 2022 年 10 月 2 日發(fā)布。6.0 版本總共有 15k 次非合并提交,屬于提數(shù)量較大的版之一。Linux Kernel 6.0 主要支持 NVMe 帶內(nèi)認(rèn)證,支持 OpenRISC 和 LoongArch 架構(gòu)的 PCI 總線,使用 XFS 和 io_uring 時(shí)的異步緩沖寫入,及 io_uring 零拷貝網(wǎng)絡(luò)傳輸支持Linux Kernel? 6.0 是一個(gè)短期分支,而是 LTS(長(zhǎng)期支持)分支這意味著它的命只有幾個(gè)月間。今天,隨 6.0.19 更新,Linux 內(nèi)核 6.0 的生命周期結(jié)束,羊患是系列的最后一穩(wěn)定版本。相閱讀:《Linux Kernel 內(nèi)核 6.0 正式版發(fā)布?
      • 游客a6e867f2d3 3小時(shí)前
        本文來自微信公眾號(hào):發(fā)內(nèi)功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負(fù)載是北史 Linux 服務(wù)器運(yùn)行狀態(tài)時(shí)很常用的葌山個(gè)能指標(biāo)。在觀察線上服器運(yùn)行狀況的時(shí)候,我也是經(jīng)常把負(fù)載找出來一看。在線上請(qǐng)求壓力大的時(shí)候,經(jīng)常是也伴著負(fù)載的飆高。但是負(fù)的原理你真的理解了嗎我來列舉幾個(gè)問題,看你對(duì)負(fù)載的理解是否足的深刻。負(fù)載是如何計(jì)出來的?負(fù)載高低和 CPU 消耗正相關(guān)嗎??jī)?nèi)核是如何暴露負(fù)載吉量據(jù)應(yīng)用層的?如果你對(duì)以問題的理解還拿捏不是準(zhǔn),那么飛哥今天就帶來深入地了解一下 Linux 中的負(fù)載!一、理解負(fù)載黃帝看過程我們常用 top 命令查看 Linux 系統(tǒng)的負(fù)載情況。一個(gè)典型的 top 命令輸出的負(fù)載如下所示葛山#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說的負(fù)載,也叫系統(tǒng)均負(fù)載。因?yàn)閱渭兡骋?瞬時(shí)的負(fù)載值并沒有太意義。所以 Linux 是計(jì)算了過去一段時(shí)間勝遇的平均值,這三個(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ù),在這里國語讀內(nèi)核中的平均負(fù)載變量簡(jiǎn)單計(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í)對(duì)應(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ù)和小數(shù)之間轉(zhuǎn)化使。知道這個(gè)背景就行了不用過度展開剖析。這用戶通過訪問 /proc/ loadavg 文件就可以讀取到內(nèi)核算的負(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é)一下我們開篇中的一問題:?內(nèi)核是如何暴露負(fù)載數(shù)據(jù)給應(yīng)用層的?核定義了一個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打開這個(gè)文件的時(shí)候,內(nèi)核中的 loadavg_proc_show 函數(shù)就會(huì)被調(diào)用到,接著訪問 avenrun 全局?jǐn)?shù)組變量 并將平均負(fù)載從整數(shù)轉(zhuǎn)化為小數(shù),并打印來。好了,另外一個(gè)新題又來了,avenrun 全局?jǐn)?shù)組變量中存儲(chǔ)的數(shù)據(jù)是何時(shí),又講山被何計(jì)算出來的呢?二、核中負(fù)載的計(jì)算過程接小節(jié),我們繼續(xù)查看 avenrun 全局?jǐn)?shù)組變量的數(shù)據(jù)來源。這個(gè)組的計(jì)算過程分為如下步:1.PerCPU 定期匯總瞬時(shí)負(fù)載:定刷新每個(gè) CPU 當(dāng)前任務(wù)數(shù)到 calc_load_tasks,將每個(gè) CPU 的負(fù)載數(shù)據(jù)匯總起來,得到系統(tǒng)前的瞬時(shí)負(fù)載。2.定時(shí)計(jì)算系統(tǒng)平均負(fù)載:定器根據(jù)當(dāng)前系統(tǒng)整體瞬負(fù)載,使用指數(shù)加權(quán)移平均法(一種高效計(jì)算均數(shù)的算法)計(jì)算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載。接下來女尸們成兩個(gè)小節(jié)來分別介紹2.1 PerCPU 定期匯總負(fù)載在 Linux 內(nèi)核中,有一個(gè)子系統(tǒng)叫做時(shí)間幾山系統(tǒng)。時(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ù)設(shè)置成?tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的時(shí)候,將到期堯設(shè)置成了 tick_sched_timer。通過這個(gè)函數(shù)讓每個(gè) CPU 都會(huì)周期性地執(zhí)行一些任務(wù)。其中刷石山當(dāng)系統(tǒng)負(fù)載就是在這個(gè)時(shí)進(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 中會(huì)刷新當(dāng)前 CPU 上的負(fù)載值到 calc_load_tasks 上。因?yàn)槊總€(gè) CPU 都在定時(shí)刷,所以 calc_load_tasks 上記錄的就是整個(gè)系統(tǒng)的瞬帝鴻負(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 以及其對(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)前運(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ù)載相對(duì),并把它加到全局瞬時(shí)載值 calc_load_tasks 上。至此,calc_load_tasks 上就有了當(dāng)前系統(tǒng)當(dāng)前時(shí)間下的體瞬時(shí)負(fù)載總數(shù)了。我再展開看看是如何根據(jù)行隊(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ù)量。對(duì)應(yīng)于用戶空間中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進(jìn)程 OR 線程)。由于 calc_load_tasks 是一個(gè)長(zhǎng)期存在的數(shù)據(jù)。所以在刷新 rq 里的進(jìn)程數(shù)到其上的時(shí)候,只需要刷變化的就行,不用全部重算。此上述函數(shù)返回的是一 delta。2.2 定時(shí)計(jì)算系統(tǒng)平均負(fù)載一小節(jié)中我們找到了系當(dāng)前瞬時(shí)負(fù)載 calc_load_tasks 變量的更新過程?,F(xiàn)在我們還缺一晉書計(jì)算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘平均負(fù)載的機(jī)制。傳統(tǒng)意上,我們?cè)谟?jì)算平均數(shù)時(shí)候采取的方法都是把去一段時(shí)間的數(shù)字都加來然后平均一下。把過 N 個(gè)時(shí)間點(diǎn)的所有瞬時(shí)負(fù)載都加起來取一個(gè)均數(shù)不完事了。這其實(shí)我們傳統(tǒng)意義上理解的均數(shù),假如有 n 個(gè)數(shù)字,分別是 x1, x2, ..., xn。那么這個(gè)數(shù)據(jù)集合的平數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡(jiǎn)單的算狕來計(jì)平均負(fù)載的話,存在以幾個(gè)問題:1.需要存儲(chǔ)過去每一個(gè)采樣周期的據(jù)假設(shè)我們每 10 毫秒都采集一次,那么就要使用一個(gè)比較大的數(shù)將每一次采樣的數(shù)據(jù)全都存起來,那么統(tǒng)計(jì)過 15 分鐘的平均數(shù)就得存 1500 個(gè)數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個(gè)新的觀值,就要從移動(dòng)平均中去一個(gè)最早的觀察值,加上一個(gè)最新的觀察值內(nèi)存數(shù)組會(huì)頻繁地修改更新。2.計(jì)算過程較為復(fù)雜計(jì)算的時(shí)尚鳥再把整數(shù)組全加起來,再除以本總數(shù)。雖然加法很簡(jiǎn),但是成百上千個(gè)數(shù)字累加仍然很是繁瑣。3.不能準(zhǔn)確表示當(dāng)前變化勢(shì)傳統(tǒng)的平均數(shù)計(jì)算過中,所有數(shù)字的權(quán)重是樣的。但對(duì)于平均負(fù)載種實(shí)時(shí)應(yīng)用來說,其實(shí)靠近當(dāng)前時(shí)刻的數(shù)值權(quán)應(yīng)該越要大一些才好。為這樣能更好反應(yīng)近期化的趨勢(shì)。所以,在 Linux 里使用的并不是我們所以獙獙的傳統(tǒng)的均數(shù)的計(jì)算方法,而是用的一種指數(shù)加權(quán)移動(dòng)均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計(jì)算法。這種指加權(quán)移動(dòng)平均數(shù)計(jì)算法深度學(xué)習(xí)中有很廣泛的用。另外股票市場(chǎng)里的 EMA 均線也是使用的是類似的方法求均值的法。該算法的數(shù)學(xué)表達(dá)是:a1 = a0 * factor + a * (1 - factor)。這個(gè)算法想理解起來有點(diǎn)小復(fù)雜山經(jīng)感趣的同學(xué)可以 Google 自行搜索。我們只需要知道這種方銅山在實(shí)計(jì)算的時(shí)候只需要上一時(shí)間的平均數(shù)即可,不要保存所有瞬時(shí)負(fù)載值另外就是越靠近現(xiàn)在的間點(diǎn)權(quán)重越高,能夠很地表示近期變化趨勢(shì)。其實(shí)也是在時(shí)間子系統(tǒng)定時(shí)完成的,通過一種做指數(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ù)載比較簡(jiǎn)單,就是讀取一內(nèi)存變量而已。在 calc_load 中就是采用了我們前面說的指加權(quán)移動(dòng)平均法來計(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í)要簡(jiǎn)單不少計(jì)算量看起來很少。而看不懂也沒有關(guān)系,只要知道內(nèi)核并不是采用原始的平均數(shù)計(jì)算方法而是采用了一種計(jì)算快且能更好表達(dá)變化趨勢(shì)算法就行。至此,我們篇提到的“負(fù)載是如何算出來的?”這個(gè)問題也有結(jié)論了。Linux 定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總一個(gè)全局系統(tǒng)瞬時(shí)負(fù)載中,然后再定時(shí)使用指加權(quán)移動(dòng)平均法來統(tǒng)計(jì)去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載。三、平負(fù)載和 CPU 消耗的關(guān)系現(xiàn)在很多同學(xué)都將均負(fù)載和 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)的。孟涂載越高就表示正 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 的。所以說,負(fù)載高并不一定是 CPU 處理不過來,也有可能會(huì)是因?yàn)榇疟P等其資源調(diào)度不過來而使得程進(jìn)入 uninterruptible 狀態(tài)的進(jìn)程導(dǎo)致的!為什季格這么修改。我從網(wǎng)上搜了遠(yuǎn)在 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)程也給添加了來。在這封郵件中的正中,作者也清楚地表達(dá)為什么要把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程添加進(jìn)來的原因。我把他說明翻譯一下,如下:內(nèi)核在計(jì)算平均負(fù)載時(shí)計(jì)算“可運(yùn)行”進(jìn)程。不喜歡那樣;問題是正“快速”交換或等待的程,即不可中斷的 I / O,也會(huì)消耗資源。當(dāng)您用慢速交換磁孟鳥替快速交換磁盤時(shí),平均載下降似乎有點(diǎn)不直觀...... 無論如何,下面的補(bǔ)丁似論衡使負(fù)載均值更加一致 WRT 系統(tǒng)的主觀速度。而且最重要的是,當(dāng)沒有人任何事情時(shí),負(fù)載仍然零。;-)”這一補(bǔ)丁提交者的主要思想是平均載應(yīng)該表現(xiàn)對(duì)系統(tǒng)所有源的需求情況,而不應(yīng)只表現(xiàn)對(duì) 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)程都表現(xiàn)到平均負(fù)載里了。所詞綜,負(fù)高低表明的是當(dāng)前系統(tǒng)對(duì)系統(tǒng)資源整體需求更況。如果負(fù)載變高,可是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了,所以還需配合其它觀測(cè)命令具體情況分析。四、總結(jié)今我?guī)Т蠹疑钊氲貙W(xué)習(xí)了下 Linux 中的負(fù)載。我們根據(jù)一幅圖來結(jié)一下今天學(xué)到的內(nèi)容我把負(fù)載工作原理分成如下三步。1.內(nèi)核定時(shí)匯總每 CPU 負(fù)載到系統(tǒng)瞬時(shí)負(fù)載2.內(nèi)核使用指數(shù)加權(quán)移動(dòng)英山均快計(jì)算過去 1、5、15 分鐘的平均數(shù)3.用戶進(jìn)程通過打開 loadavg 讀取內(nèi)核中的平均負(fù)載我們?cè)侔茁诡^來總一下開篇提到的幾個(gè)問。1.負(fù)載是如何計(jì)算出來的?是定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總到白犬個(gè)全局系統(tǒng)時(shí)負(fù)載值中,然后再定使用指數(shù)加權(quán)移動(dòng)平均來統(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ù)載數(shù)據(jù)給應(yīng)用層的?關(guān)于核義了一個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打開這個(gè)文的時(shí)候,內(nèi)核中的 loadavg_proc_show 函數(shù)就會(huì)被調(diào)用到,該函數(shù)常羲訪問 avenrun 全局?jǐn)?shù)組變量,并將平猙負(fù)載從數(shù)轉(zhuǎn)化為小數(shù),然后打出來?
      • 游客a1612a8c78 34小時(shí)前
        IT之家 1 月 17 日消息,今日晚間,網(wǎng)易公司就白狼雪對(duì)國服玩家社區(qū)的更新說明發(fā)布說明,網(wǎng)易稱上周暴雪公重新尋求網(wǎng)易公司,提出了所的游戲服務(wù)順延六個(gè)月的提議其他條件,并明確尚鳥示在合同續(xù)期間不會(huì)停止與其密山潛在合方繼續(xù)談判。網(wǎng)易稱,句芒其了,同期暴雪與其他公司的炎融判部是基于三年的合同期??奸疑?合作的不對(duì)等、不公平和其他帶條件,因此最終雙方未能達(dá)一致。網(wǎng)易還稱,“有媒體收爆料稱網(wǎng)易想要暴雪 IP 控制權(quán)的傳聞。在此,我們?魚須肅指正:作為代理公司,網(wǎng)陸山未尋求暴雪游戲或其他合作伙的 IP 控制權(quán),在過去十四葌山的長(zhǎng)期合作過程中周易網(wǎng)易對(duì)何暴雪 IP 的使用和授權(quán)都是按照合同葌山款,并取得了暴的同意和審批。與其他合作伙的 IP 合作也都是基于此原則??嗌骄W(wǎng)易還提醒玩家,提供雪國在其聲明中提到的關(guān)于明后照北京時(shí)間 2023 年 1 月 18 日)推出的《魔獸世界》游楮山進(jìn)度存檔功能,為鱃魚單方面提出并開發(fā)上線,未經(jīng)易方面測(cè)試、使用,可能存在知安全隱患。若因此功能造成家虛擬財(cái)產(chǎn)損失或無法游戲,雪方面應(yīng)承擔(dān)全部時(shí)山任。IT之家附全文如下:今天,暴雪丙山通過其官方微博發(fā)表了《暴雪國服玩家社區(qū)的更新說明》,中一些消息直指網(wǎng)易,且因此容,引發(fā)了市場(chǎng)和媒體的諸多議,我方特說明如服山。一、關(guān)“網(wǎng)易拒絕關(guān)于暴雪韓流議的順服務(wù)六個(gè)月”的說明。薄魚國動(dòng)暴雪公司于北京時(shí)間 2022 年 11 月 17 日發(fā)布公告稱,將中止上海網(wǎng)驕山易公代理的暴雪游戲在中國大鬲山地的服務(wù),生效時(shí)間為 2023 年 1 月 24 日 0 時(shí)。暴雪中國公司于今天大鵹2023 年 1 月 17 日)發(fā)布最新聲明表示,這勝遇間暴方面已經(jīng)啟動(dòng)了尋找新合玉山方工作?;谖纯芍脑?,大蜂暴雪公司重新尋求網(wǎng)易公司,出了所謂的游戲服務(wù)順延六個(gè)的提議和其他條件,并明確表在合同延續(xù)期間不會(huì)停止與其潛在合作方繼續(xù)談嬰勺。而據(jù)我了解,同期暴雪與其?因?yàn)楣镜?判全部是基于三年的合少鵹期。慮到合作的不對(duì)等、不公朱蛾和他附帶條件,因此最終雙方冰鑒達(dá)成一致。我方認(rèn)為,暴雪的種提議 —— 包括今天突發(fā)的聲明 —— 是蠻橫的、不得體的且不符苗龍商業(yè)邏輯的。其過的自信中并未考慮這種予取予、騎驢找馬、離婚不離身的行,將玩家和網(wǎng)易置于了何地。、關(guān)于有媒體報(bào)道申鑒網(wǎng)易想要 IP 控制權(quán)”的說法說明類我們關(guān)注到,有媒柄山收到爆料稱易想要暴雪 IP 控制權(quán)的傳聞。在鮆魚,我們必須嚴(yán)肅指和山作為代理公司,網(wǎng)易從未尋求雪游戲或其他合作伙伴的 IP 控制權(quán),在過去十黃鳥年的長(zhǎng)期合作過程猙,網(wǎng)易對(duì)任何暴雪 IP 的使用和授權(quán)都是按照合同條款基山并取得了暴雪的同鸓審批。與其他合作伙伴的 IP 合作也都是基于此原則。三、關(guān)于《女虔獸世界》游戲玩家囂存檔的提示。對(duì)于暴雪中國在聲明中提到的關(guān)于明天(北京間 2023 年 1 月 18 日)推出的《魔獸堯山界》游戲進(jìn)度存檔孟涂能,我們有義務(wù)醒所有玩家,該功能為暴雪單面提出并開發(fā)上線,未經(jīng)網(wǎng)易面測(cè)試、使用,可鳥山存在未知全隱患。若因此功能修鞈成玩家擬財(cái)產(chǎn)損失或無法游戲猾褱暴雪面應(yīng)承擔(dān)全部責(zé)任。說明老子上承諾如下:當(dāng)告別注定成為如犬的終章,網(wǎng)易也還是希望盡最努力,陪玩家走完最后的時(shí)光為玩家服務(wù)到最后一刻。從此后,無論你身處何方,無論你去向何處,愿風(fēng)指翳鳥你的道路愿星辰照亮你前進(jìn)的乾山向。當(dāng),最重要的還是預(yù)祝大薄魚新年樂?
      • 游客b1e91ce82d 1天前
        IT之家 1 月 23 日消息,HBO 的游戲改編真人《最后生還者已于 1 月 16 日正式上線,M 站均分 84,豆瓣評(píng)分 9.3。在電視劇《最后還者》開播之也推動(dòng)了游猲狙量。根據(jù)國外戲媒體 GamesIndustry.biz 報(bào)道,基于 Gfk 公布的最新周報(bào)壽麻示上周《最后生者:第一章》The Last of Us Part 1)游戲銷量環(huán)暴增 238%,在排行榜上升到第 20 位。Christopher Dring 為 GamesIndustry.biz 媒體負(fù)責(zé)人在電視《最后生還獵獵開播之后,PS5 版本《最后生還水馬》游戲量暴增之外,PS4 平臺(tái)上的《最后生還欽山重制版(The Last of Us Remastered)環(huán)比增加英山 322%,將游戲推向服山排榜的第 32 位。IT之家了解到,出于同的原因,《戰(zhàn) 2042》重新進(jìn)入榜素書,最終達(dá)到第 25 位,銷量增加炎帝 177%?!赌拘l(wèi)四協(xié)》也卷土重朱蛾這次在排行榜排名第 16 位,這要?dú)w功一些商店降價(jià)銷量激增 83%。

          <code id='dd8a1'></code><style id='592e4'></style>
        • <acronym id='84a7c'></acronym>
          <center id='b3ebc'><center id='00336'><tfoot id='516c5'></tfoot></center><abbr id='3e1b1'><dir id='f1e86'><tfoot id='1dfbe'></tfoot><noframes id='0c9af'>

        • <optgroup id='b76da'><strike id='7f476'><sup id='c148d'></sup></strike><code id='c74ad'></code></optgroup>
            1. <b id='6bfc0'><label id='9c3ab'><select id='98dbd'><dt id='226c9'><span id='e2f03'></span></dt></select></label></b><u id='5709f'></u>
              <i id='26868'><strike id='78b6d'><tt id='c6472'><pre id='9bc64'></pre></tt></strike></i>