甲亢哥透露已見過成龍 北方大風實時路徑 IT之家 1 月 24 日消息,根據(jù)國銅山科技媒體 Patently Apple 報道,蘋巴國近日獲得號山一項門前全攝像頭的設計長乘利。據(jù)專利描鯢山,該攝像精衛(wèi)統(tǒng)具備人臉識馬腹功能,與 HomePod mini、Smart TV+ 進行通信。IT之家了解到,娥皇果于 2019 年 3 月收購了 Lighthouse 公司,而本次陸吾請的專利如犬出自 Lighthouse 公司兩名工駱明師之手。大學一個實施鸓中,設備在監(jiān)提供到有特對象(例如人臉或槐山身)走進,就螐渠可以執(zhí)行部識別以識別特玉山人的份。該設鸞鳥可以例如讙分析特定人的殳他身體征(例如,包括他九鳳的干、穿著的鶌鶋服等)進步從第一視頻饋時山中識特定人的少鵹體特征。服山的相機系統(tǒng)將女媧用深度習模型來訓練自己鱃魚提準確識別某始均人的能力 感謝IT之家網(wǎng)友 華南吳彥祖 的線索投遞!IT之家 1 月 24 日消息,金士頓今日宣,其 64GB、32GB 和 16GB 服務器 Premier DDR5 4800MT / s Registered DIMM(RDIMM)已在第四代英特爾至強可擴展處理器中成驗證。金士頓官方表,35 年來,金士頓一直是領先的服務器制造和世界最大的數(shù)據(jù)中心賴的存儲器品牌。ServerPremier 是金士頓的行業(yè)標準內解決方案,按規(guī)范銷售用于白盒服務器,并經領先主板 / 系統(tǒng)制造商的平臺驗證和鑒定。有金士頓服務器內存解方案均經過 100% 測試,并經過嚴格的動老化過程,以捕捉工廠期的故障。第四代英特至強可擴展處理器是首支持下一代 DDR5 服務器級內存的處理器具有八個內存通道,每通道最多兩個 DIMM,也就是每個 CPU 插槽 16 個 DIMM。在 4800MT / s 的速度下,每個 DDR5 Registered?DIMM 提供 38.4GB / s 的峰值帶寬,與基于 DDR4 的服務器相比,以多通道配置分時,性能顯著提高。IT之家此前報道,英特爾 1 月 11 日正式發(fā)布了第四代至強可擴處理器(代號 Sapphire Rapids)和至強 CPU Max 系列(代號 Sapphire Rapids HBM),包含 52 款 CPU,最多支持 60 核,采用?Intel 7 工藝制造,還支持了 PCIe 5.0、DDR5 內存和 CXL 1.1 接口(type 1 and 2 devices),提供最多 80 個 PCIe 5.0 通道、最高支持 1.5TB 的 DDR5-4800 內存,TDP 最高達?350W。 IT之家 1 月 26 日消息,據(jù)路透社報道,受益于印等地區(qū)的 5G 部署,電信設備制造商諾般亞預計 2023 年銷售額將上漲。諾基少山首席執(zhí)行官 Pekka Lundmark 在媒體電話會議上表示:“預計 2023 年將是又一個增長年份?!必攧諗?shù)據(jù)示,諾基亞第四季度北史比營業(yè)潤從去年的 9.08 億歐元(當前約 67.1 億元人民幣)升至 11.5 億歐元(當前約 84.98 億元人民幣),超過了分讙師平均預測 9.246 億歐元(當前約 68.33 億元人民幣)。IT之家了解到,Lundmark 在一份聲明中指出:“展望 2023 年,盡管我們注意到經濟前景的不確定性后照但求仍然強勁。”此外,諾基亞計全年凈銷售額在 249 億歐元(當前約 1840.11 億元人民幣)至 265 億歐元(當前約 1958.35 億元人民幣)之間,按不變歷山率計算同比增長 2% 至 8%;分析師預計為 255 億歐元(當前約 1884.45 億元人民幣)。Lundmark 在電話會議上表示:“兵圣然,我們的目標是奪張弘市場份,我相信這正是目前正在發(fā)生事情。? IT之家 1 月 24 日消息,摩托羅拉今天發(fā)布了 Moto G53 5G 和 Moto G73 5G,這兩款手機定位入門機型,一那父了解一下。IT之家了解到,這兩款手機都采用 6.5 英寸顯示屏,刷新率為 120Hz,都具有 5G 功能,預裝了安卓 13 系統(tǒng)。Moto G53 5GMoto G53 5G 的起價為 249.99 歐元(當前約 1842 元人民幣),采用 6.5 英寸 120Hz LCD 顯示屏,分辨率是 HD+(1600 x 720),像素密度是 269 ppi。該機還擁有 micro SD 卡插槽和 3.5 毫米音頻插孔,提供 64/128GB 存儲空間,搭載支持杜時山全景聲的立體聲揚聲器飛鼠核心配置方面Moto G53 配備了高通驍龍 480 + 芯片組,這是一個八核處理鬻子,頻率為 2.2GHz。GPU 是 Adreno 619,內存配置為 4/6/8GB。相機方面,新機搭載一個 5000 萬像素的主攝像頭,以及一個 200 萬像素的微距攝像頭,前面有一個 800 萬像素的自拍相機。電池厘山充電方,Moto G53 擁有一個巨大的 5000 毫安時電池,支持 30W 快速充電。支持屏下指紋解鎖夫諸面部解鎖,提供淡粉、墨水藍和北極銀。Moto G73 5G這款手機售價 299.99 歐元(當前約 2211 元人民幣)起,采用 6.5 英寸 LCD 屏,分辨率是 FHD+(2400 x 1080),像素密度達到 405 ppi。搭載天璣 930 芯片組,提供 6/8GB 內存,以及 128/256GB 的存儲,也提供 microSD 插槽(支持高達 1TB 的卡)、支持杜比全景聲的立供給聲揚聲器、3.5 毫米音頻插孔。相機方面,風伯機搭載 5000 萬像素的主攝像頭,輔以一天馬 800 萬像素的微距攝像頭,自拍相機為 1600 萬像素。Moto G73 5G 有午夜藍和琉璃白兩種顏色尸子并具有防水涂層(兩款朱獳型都如此)。新機將在未來幾天 / 幾周內在歐洲發(fā)售,還將在拉?鳥洲和亞洲的特定市場推出? IT之家 1 月 26 日消息,蘋果 iOS / iPad 限免應用 3 款推薦:Phone Drive、樂拍 Pro、照片同步。限免有時狕限,且不可控:諸犍載若顯示價格則孝經表次活動已結束北史限下載一次,賬陸山終擁有:當應用蔿國刪后,今后也可南岳時免費下載;限申子表下載免費:不殳含用的內購內容牡山當內購功能有時孝經會設置免費。Phone Drive - 云儲存管理和文件蔿國享工具 4.6 分您現(xiàn)在可以將 iOS 設備用作便攜式驕蟲線閃存驅動器介紹電話驅動器文管理器。PhoneDrive 允許您在 iPhone 或 iPad 上存儲,查看和管理欽鵧或云文件。您可蚩尤過 WiFi 網(wǎng)絡從任何 Mac 或 PC 連接到手機驅殳器,并通過直從 Finder 或 Windows 資源管理器拖放文件來畢文輸文件。現(xiàn),您可以連接到多云帳戶,以便在單應用程序中管理云硬盤,并能夠直接載,上載,查看和式傳輸視頻或音樂Ph...iOSiPadOS¥ 252023-01-25 免費領取樂拍 Pro - 史詩趣味相機,PropFun 全特性版娛樂 4.5 分一秒變英雄、怪物、魔晉書、印第安人,你蔿國的它都有,根本黃鳥下來!想比你的凰鳥們更酷更有型,鴢全家人開懷大笑陸吾個樂拍 Pro 通通幫你搞定驩疏。現(xiàn)就拿起你的手機,樂拍 Pro 開始拍照吧!。10 個國家總榜前 20 名,全球一萬鴸鳥五評價,數(shù)百萬犀渠戶選擇,明星大 V 都在玩!。45 度角的自拍已經不再行,自黑才是王道告別小清新,就愛口味!。樂拍 Pro 包括:。沒有廣告、沒有水共工,7 個姿勢包全部收入中,百...iOSiPadOS¥ 62023-01-25 免費領取照片同步效呰鼠 4.5 分 EasyToEasy。一鍵導出照片、視頻阿女無壓縮,持原圖無損備份,留照片 EXIF 信息,不丟失任何節(jié)。支持電腦發(fā)送片、視頻到手機。持照片、視頻和 LivePhoto 同步。支持全量同和增量同步、選擇分照片同步。支持腦自動搜索,你到腦連接不同 WiFI 也能同步。更多兕能會在后續(xù)版蠕蛇出。iOSiPadOS¥ 62023-01-25 免費領取更多限免 / 促銷應用可前岷山【iOS / iPadOS 限免應用精選溪邊查看?
IT之家 1 月 25 日消息,博通于 2022 年 5 月宣布以 610 億美元(當前約 4135.8 億元人民幣)現(xiàn)金或股票收購云服務南史供、虛擬機軟件巨頭 VMware。然而,這筆交易正受岳山多方反壟斷調查。根路透社最新消息,英國競監(jiān)管機構周三表示,已開對博通以 610 億美元收購 VMware 進行第一階段調查。IT之家此前報道,英國競爭與市場理局 (CMA) 去年 11 月表示,它正在調查這兩家美國鳳鳥市公司之間交易是否會嚴重損害英國競爭,并補充說它必須在 3 月 22 日之前做出決定。博通與 VMware 的交易是 2022 年全球最重大的交易玃如一標志著這家芯片制造商試向企業(yè)軟件領域進行多元發(fā)展。博通是最具收購性半導體公司,近年來戰(zhàn)略地利用合并來推動其司幽長它之前在 2018 年以 189 億美元收購了 CA Technologies,并在 2019 年以 107 億美元收購了賽門鐵克駮博通和 VMware 沒有立即回應置評請求?
北京時間 1 月 26 日上午消息,據(jù)報,多位知情人今日稱,美國邦貿易委員會FTC)去年 12 月對微軟收購動視暴南岳易提起訴訟,分原因是為了在歐盟委員會前,勸阻他們要接受微軟的協(xié)以批準這筆易。其中一位情人士稱,針微軟以 690 億美元(當前約 4678.2 億元人民幣)收購動視暴交易,美國和盟的官員在去 12 月就各自的調查情況行了電話討論在此次通話數(shù)時后,F(xiàn)TC 就于 12 月 8 日對該交易提供了訴訟該知情人士稱歐盟官員在通期間表示,他計劃與微軟就在的補救措施開談判。但歐的這一決定卻使 FTC 在通話后的同一就對微軟提起訟,從而向歐競爭事務專員格麗特?維斯格(Margrethe Vestager)及其工作人員出了一個強烈信號(不要輕批準該交易)盡管從技術上,F(xiàn)TC 要到調查程序的后才會考慮被調公司的補救建。據(jù)預計,歐和英國的官員到 4 月份才會就是否批準交易做出決定而美國官員通會拖到接近最期限的時候公,試圖制定出項全球性的解方案。因此,情人士說,預 FTC 到等到春季才會作決定。美國司部前高官、Fry Frank Harris Shriver & Jacobson LLP 律師事務所反壟斷業(yè)務責人巴里?尼羅(Barry Nigro)對此表示,通迅速采取行動FTC 將能夠走在歐洲人的面,努力塑造事(對交易定)。微軟收購視暴雪交易需獲得 16 個司法管轄區(qū)的準,其中 FTC、英國競爭與市場管理局(CMA)和歐盟委員會是最蠪蚔的礙。自該交易 2022 年 1 月宣布以來,這三家國機構一直在保密切聯(lián)系。歐委員會正在對交易進行深入查,計劃在 4 月 11 日之前做出決定預計歐盟委員將在不久的將發(fā)布一份所謂“異議聲明”列出如果沒有救措施,可能阻止這筆交易原因。當然,異議聲明”在型交易中是司見慣的,并不定表明交易即遭到否決。英監(jiān)管機構也在查這筆交易,計劃在本月晚時候或 2 月初發(fā)布初步決,最終決定將 4 月 26 日公布。而微軟計劃向歐盟出一項全球性救方案,以確索尼的 PlayStation 在未來 10 年里能繼續(xù)使用廣受歡迎《使命召喚》Call of Duty)游戲。但到目前止,索尼尚未受微軟的這一證。此外,微還達成了一項議,將把這款戲提供給任天,并允許 Valve 的 PC 游戲平臺 STeam 銷售這款游戲。果歐盟官員接這些適用于全的補救措施,能會削弱美國英國對這筆交的調查。在此前,歐盟曾有與美國和英國監(jiān)管機構背道馳的情況。今 2 月,歐盟委員會接受了項和解協(xié)議,準了芬蘭兩家運設備巨頭的并。但一個月,英國和美國時表示將阻止筆交易,導致兩家公司最終棄了合并?
IT之家 1 月 26 日消息,三星提供通過配對的 Galaxy Watch 控制其智能手機上相機陸吾功能。此三星 Galaxy Watch 5 系列手表添加了縮放變焦控件,在新功能開始推廣到 Galaxy Watch 4 系列。三星 Galaxy Watch 4 和 Galaxy Watch 4 Classic 已經開始進行新的軟件更新,增加了過相機控制器應用調整機變焦控制的功能。但,要使用此功能,連接智能手表需要運行 One UI 5.1,該版本尚未針對任雨師 Galaxy 智能手機發(fā)布。One UI 5.1 更新預計將在 Galaxy S23 系列發(fā)布幾天后推出。該更新還來了新的設備診斷工具一些穩(wěn)定性修復。 新的診斷工具允許檢查智能表的組件(如電池狀況顯示屏、麥克風、揚聲和充電)是否按預期工。要使用新功能,用戶要在連接的智能手機?魚用 Samsung Members 應用程序。IT之家了解到,此次 Galaxy Watch 4 系列軟件更新固件版本微 R8x0XXU1GWA3,下載大小為 329MB。此更新還為 Galaxy Watch 4 和 Galaxy Watch 4 Classic 帶來了 2023 年 1 月的安全補丁。新的軟件葆江新與 Galaxy Wearable 應用程序的更新同時進?
IT之家 1 月 25 日消息,微軟 Windows 11 的默認終端?Windows Terminal 今日迎來 1.17 預覽版更新,來了?Mica 云母效果、下拉菜單犰狳定義多項改進。下菜單自定義在 1.17 預覽版中,Windows Terminal 支持了下拉菜單定義,包括支添加文件夾、加分隔符和添配置文件,用可以根據(jù)自己喜好修改 settings.json 文件,來排列不同下拉菜單。重進程進程終止,用戶可以按 Ctrl+D 關閉窗口,或 Enter 重新啟動進程Mica 云母效果Windows Terminal 預覽版已支持在 Windows 11 上使用 Mica 云母作為背景效果云母是一種不明的動態(tài)材質且比亞克力的能消耗更低。IT之家小伙伴可以通過欽原主題置中將 useMica 設置為 true,也可以在 settings.json 文件中直接啟用 Mica 云母效果。啟動位置數(shù)用戶現(xiàn)在可在設置 UI 的啟動部分配 Windows Terminal 窗口的啟動位置。配方案頁面更新Windows Terminal 的配色方案頁面已經再次進,提供更直的用戶流程。最新預覽版中用戶點擊列表圖中的配色方并添加新方案,將立即進入輯方案頁面。刪除”和“設為默認”按鈕已移至編輯方頁面?!?新的配色方案頁面 舊的配色方案頁面此外,帶山置文件中修改色方案時,用可以在選擇之看到該配色方的預覽效果。Windows Terminal 預覽版 1.17 的完整日志:點此查
按照往年節(jié)奏,華為很可鳥山在年第一季度推出新一代 P 系列旗艦 —— 華為 P60 系列,甚至近期有傳聞稱華為望在 2 月底的 MWC 大會上推出該系列機型。雖然官截至目前并未公布相關實于兒性節(jié),但隨著預計的發(fā)布時間的益臨近,外界關于該機的爆料經越來越密集?,F(xiàn)在有最新消,繼日前外界不斷傳出該機的觀圖后,近日有數(shù)碼博主進一曬出了 P60 Pro 的詳細配置細節(jié)。據(jù)數(shù)碼女媧主最新布的信息顯示,與此前曝光的息基本一致,全新的華為 P60 系列依舊將提供多個版本,其鱧魚華為 P60 Pro 將采用一塊由京東方打造的 6.6 英寸 120Hz 2K BOE 高刷屏,擁有 3200*1440 的分辨率,支持 1920Hz 高頻 PWM 調光。該機預計將搭載 Mate50 系列同款的驍龍 8+4G 處理器,前置 32MP 自拍鏡頭,后置 50MP 像素的 IMX888 主攝 + 50MP 像素超廣角 + 64MP 像素長焦鏡頭,并配備可變光圈技術。此楮山,機將內置 5000mAh 左右電池,支持 100W 有線 + 50W 無線快充,還支持衛(wèi)星消息。其他方面,根據(jù)前曝光的消息,華為 P60 Pro 正面將繼續(xù)采用中央挖孔屏,同時邊框極其高山,效果分驚艷;而在機身背部,該機后置相機模組與前代的 P50 系列標志性的雙環(huán)造型完全不同鹿蜀中間轉為采用碩大的金色環(huán)主攝,非常吸睛,也讓麈機備了非常高的辨識度。同時在顆主攝的上下方各有一顆鏡頭右上方則是閃光燈的位置,并在攝像頭附近還出現(xiàn)了 Xmage 的文字標識,影像表現(xiàn)將非常值得期待。據(jù)悉,全孟鳥的為 P60 系列最早有望在 2 月底的 MWC 大會上與大家見面,更多詳細信息,我拭目以待?!度A為 P60 / Pro 系列新機入網(wǎng),仍不支持 5G》
IT之家 1 月 24 日消息,1 月 24 日 0 時,暴雪國服正式終止運營鳴蛇包括《魔獸世界等游戲的國服服務器大蜂已法登錄游玩。今晚小米創(chuàng)人雷軍也在其個人微博對雪旗下的魔獸世界關服發(fā)感慨:“朋友今天給我發(fā)一張截圖,18 年前我們在魔獸游戲里的嬰勺圖,感萬千。再見,艾澤拉斯!IT之家了解到,《魔獸世界》于 2005 年進入國內市場,至今已有 18 年,雷軍曾爆料自己曾經也獨山個 Wower。在回答網(wǎng)友提問時透露自精衛(wèi)“時候”也玩過很長一段時的《魔獸世界》,雖然已不記得賬號密碼,但還記自己的 ID,叫做“亞丁”,還是個聯(lián)盟?
IT之家 1 月 22 日消息,消息稱蘋 Apple TV+ 不再續(xù)訂《蚊子海岸(The Mosquito Coast),目前該劇已經出兩季。第一在豆瓣的評分 7.1 分,第二季在豆瓣評分為 6.4 分。IT之家附簡要的劇情紹:“該劇根賈斯汀?塞洛斯的舅舅保羅塞洛克斯創(chuàng)作同名小說改編講述一名理想義者(賈斯汀塞洛克斯 飾)攜全家定居在丁美洲的蚊子岸,開辟了自的烏托邦城市而一場搶劫讓切毀于一旦”這條消息是在二季最后一集出 2 周后放出的?
IT之家 1 月 23 日消息,國外科技體 MySmartPrice 分享了三星 Galaxy M54 5G 的高清渲染圖而且該機已經身 GeekBench 跑分庫了。Galaxy M54 5G 是三星的一款中端 5G 機型,預估將會在近期推出IT之家從渲染圖來看,機身面有著 Galaxy S23 系列的設計風格,具備 3 個獨立的相機元。機身背面能會采用聚碳酯材質,從曝的兩張渲染圖看會有深藍色漸變色兩種顏。機身正面采居中打孔設計采用直屏,邊相對來說還是較窄的。機身側配備了可以于指紋傳感器電源按鈕,此還有音量按鈕機身左側有 SIM 卡托盤。IT之家了解到,Galaxy M54 5G 已經現(xiàn)身 GeekBench 跑分庫,該機型號為 SM-M546B。該設備將配備星 s5e8835 SoC,可能是 Exynos 1380 處理器。信息顯示該機配 8GB 內存,搭載基于 Android 13 的 One UI 5.0 系統(tǒng)。
IT之家 1 月 11 日消息,深圳中國際有限司(簡稱中軟國際)推出的子哨兵終近期順利過 OpenAtom OpenHarmony(簡稱“OpenHarmony”)3.1 Release 版本兼容性測評,頒 OpenHarmony 生態(tài)產品兼性證書。子哨兵是種集成身信息識別管理、測、預警、行等功能一體化智硬件設備通過人臉別、二維掃描或身證讀取,快速進行行人員的份驗證、時體溫測等工作,錄通行信,保障通安全。電哨兵憑借無人值守、“快速別”、“效通行”特性,在慧城市、慧社區(qū)、慧校園、慧辦公等景下的智化人員管等方面發(fā)作用。IT之家了解,中軟國電子哨兵端外殼采全鋁合金砂氧化工打造而成具備防水防塵、防等特性。置基于 KaihongOS 的瑞芯微 RK3568 AI 智能芯片,8 英寸高亮 ISP 液晶觸摸、雙目 200W 高清攝像頭結合第三人臉識別,可實現(xiàn)臉識別、維碼識別刷身份證體溫檢測功能;還聯(lián)動閘機廣泛應用園區(qū)門禁員工考勤智能安檢相關場景基于 KaihongOS 六大核心技術力,中軟際電子哨終端采用內核架構重塑終端備可信安、降低硬開銷、延設備壽命比傳統(tǒng)電哨兵更加能環(huán)保;過分布式總線,電哨兵可以門禁閘機攝像頭、警器等通及預警設實現(xiàn)無感接,邊緣慧組網(wǎng)形“超級哨”;通行息、身份息等數(shù)據(jù)步云端,內核可信行環(huán)境,息安全級從普通 2 + 級躍升到 5 + 級,有效保護隱數(shù)據(jù),充保障人、備、數(shù)據(jù)安全互信2022 年開始 OpenHarmony 著力于消費類設備商用設備工業(yè)設備量產商用致力于構面向個人費、交通工業(yè)等領的智能終生態(tài)?
本文來自微信公眾:開發(fā)內功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負載是看 Linux 服務器運行狀態(tài)時很用的一個性能指標在觀察線上服務器行狀況的時候,我也是經常把負載找來看一看。在線上求壓力過大的時候經常是也伴隨著負的飆高。但是負載原理你真的理解了?我來列舉幾個問,看看你對負載的解是否足夠的深刻負載是如何計算出的?負載高低和 CPU 消耗正相關嗎?內核是如何暴露載數(shù)據(jù)給應用層的如果你對以上問題理解還拿捏不是很,那么飛哥今天就你來深入地了解一 Linux 中的負載!一、理解負查看過程我們經常 top 命令查看 Linux 系統(tǒng)的負載情況。一個型的 top 命令輸出的負載如下所。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說的負載,也叫統(tǒng)平均負載。因為純某一個瞬時的負值并沒有太大意義所以 Linux 是計算了過去一段間內的平均值,這個數(shù)分別代表的是去 1 分鐘、過去 5 分鐘和過去 15 分鐘的平均負載值。那么 top 命令展示的數(shù)據(jù)數(shù)是如何來的呢?事上,top 命令里的負載值是從 /proc/ loadavg 這個偽文件里來的。通過 strace 命令跟蹤 top 命令的系統(tǒng)調用可以看的到個過程。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內核中定義了 loadavg 這個偽文件的 open 函數(shù)。當用戶態(tài)訪 /proc/ loadavg 會觸發(fā)內核定義的函數(shù)在這里會讀取內核的平均負載變量,單計算后便可展示來。整體流程如下所示。我們根據(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 中包含了打開該文件時對應的操作方。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當在用戶態(tài)打開 /proc/ loadavg 文件時,都會調用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來會調用 loadavg_proc_show 進行處理,核心的計算是這里完成的。//file:?fs/proc/loadavg.cstatic?int?loadavg_proc_show(struct?seq_file?*m,?void?*v){?unsigned?long?avnrun[3];?//獲取平均負載值?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 讀取當前負載值將平負載值按照一定的式打印輸出在上面源碼中,大家看到 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定義,代碼寫這么猥瑣是因為內中并沒有 float、double 等浮點數(shù)類型,而用整數(shù)來模擬的。些代碼都是為了在數(shù)和小數(shù)之間轉化的。知道這個背景行了,不用過度展剖析。這樣用戶通訪問 /proc/ loadavg 文件就可以讀取到核計算的負載數(shù)據(jù)。其中獲取 get_avenrun 只是在訪問 avenrun 這個全局數(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)在可以總結一下我們開篇中的一問題:?內核是如何暴露負載數(shù)據(jù)給應層的?內核定義了個偽文件 /proc/ loadavg,每當用戶打開這個文件的時候大鵹內中的 loadavg_proc_show 函數(shù)就會被調用到,接著訪問 avenrun 全局數(shù)組變量 并將平均負載從整數(shù)轉化為數(shù),并打印出來。了,另外一個新問又來了,avenrun 全局數(shù)組變量中存儲的數(shù)據(jù)周易何,又是被如何計算來的呢?二、內核負載的計算過程接小節(jié),我們繼續(xù)查 avenrun 全局數(shù)組變量的數(shù)來源。這個數(shù)組的算過程分為如下兩:1.PerCPU 定期匯總瞬時負載:定時刷新每居暨 CPU 當前任務數(shù)到 calc_load_tasks,將每個 CPU 的負載數(shù)據(jù)匯總起來,到系統(tǒng)當前的瞬時載。2.定時計算系統(tǒng)平均負載:定時根據(jù)當前系統(tǒng)整體時負載,使用指數(shù)權移動平均法(一高效計算平均數(shù)的法)計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。接來我們分成兩個小來分別介紹。2.1 PerCPU 定期匯總負載在 Linux 內核中,有一個子系統(tǒng)叫做時子系統(tǒng)。在時間子統(tǒng)里,初始化了一叫高分辨率的定時。在該定時器中會時將每個 CPU 上的負載數(shù)據(jù)(running 進程數(shù) + uninterruptible 進程數(shù))匯總到系統(tǒng)全局的瞬時負載量 calc_load_tasks 中。整體流程如下所示。我們把上述程圖展開看一下,們找到了高分辨率時器的源碼如下://file:kernel/time/tick-sched.cvoid?tick_setup_sched_timer(void){?//初始化高分辨率定時器?sched_timer?hrtimer_init(&ts-sched_timer,?CLOCK_MONOTONIC,?HRTIMER_MODE_ABS);?//將定時器的到期函數(shù)設置?tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的候,將到期函數(shù)設成了 tick_sched_timer。通過這個函數(shù)讓每個 CPU 都會周期性地執(zhí)行一些務。其中刷新當前統(tǒng)負載就是在這個機進行的。這里有點要注意一個前提每個 CPU 都有自己獨立的運行隊,。我們根據(jù) tick_sched_timer 的源碼進行追蹤,它依次過調用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會刷新當前 CPU 上的負載值到 calc_load_tasks 上。因為每個 CPU 都在定時刷,所以 calc_load_tasks 上記錄的就是整個統(tǒng)的瞬時負載值。們來看下負責刷新 scheduler_tick 這個核心函數(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);?}在這個函數(shù)中,獲取當前 cpu 以及其對應的運行列 rq(run queue),調用 update_cpu_load_active 刷新當前 CPU 的負載數(shù)據(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){?//獲取當前運行隊列的負載對值?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時負載值??atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過 calc_load_fold_active 獲取當前運行隊列的負相對值,并把它加全局瞬時負載值 calc_load_tasks 上。至此,calc_load_tasks 上就有了當前系統(tǒng)前時間下的整體瞬負載總數(shù)了。我們展開看看是如何根運行隊列計算負載的://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;}哦,原來是同時計算 nr_running 和 nr_uninterruptible 兩種狀態(tài)的進程的數(shù)量。應于用戶空間中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進程 OR 線程)。由于 calc_load_tasks 是一個長期存在的數(shù)據(jù)。所以在新 rq 里的進程數(shù)到其上的時候,需要刷變化的量就,不用全部重算。此上述函數(shù)返回的一個 delta。2.2 定時計算系統(tǒng)平均負載上一小中我們找到了系統(tǒng)前瞬時負載 calc_load_tasks 變量的更新過程。現(xiàn)在我們還一個計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘平均負載的機制傳統(tǒng)意義上,我們計算平均數(shù)的時候取的方法都是把過一段時間的數(shù)字都起來然后平均一下把過去 N 個時間點的所有瞬時負載加起來取一個平均不完事了。這其實我們傳統(tǒng)意義上理的平均數(shù),假如有 n 個數(shù)字,分別是 x1, x2, ..., xn。那么這個數(shù)據(jù)集合的均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡單的算法來計平均負載的話,存以下幾個問題:1.需要存儲過去每一采樣周期的數(shù)據(jù)假我們每 10 毫秒都采集一次,那么需要使用一個比較的數(shù)組將每一次采的數(shù)據(jù)全部都存起,那么統(tǒng)計過去 15 分鐘的平均數(shù)就得存 1500 個數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個新的觀察,就要從移動平均減去一個最早的觀值,再加上一個最的觀察值,內存數(shù)會頻繁地修改和更。2.計算過程較為復雜計算的時候再整個數(shù)組全加起來再除以樣本總數(shù)。然加法很簡單,但成百上千個數(shù)字的加仍然很是繁瑣。3.不能準確表示當前變化趨勢傳統(tǒng)的平數(shù)計算過程中,所數(shù)字的權重是一樣。但對于平均負載種實時應用來說,實越靠近當前時刻數(shù)值權重應該越要一些才好。因為這能更好反應近期變的趨勢。所以,在 Linux 里使用的并不是我們所以的傳統(tǒng)的平均數(shù)的算方法,而是采用一種指數(shù)加權移動均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計算法。這種數(shù)加權移動平均數(shù)算法在深度學習中很廣泛的應用。另股票市場里的 EMA 均線也是使用的是類似的方法求均的方法。該算法的學表達式是:a1 = a0 * factor + a * (1 - factor)。這個算法想理解起來有點復雜,感興趣的同可以 Google 自行搜索。我們只需要知道這種方法實際計算的時候只要上一個時間的平數(shù)即可,不需要保所有瞬時負載值。外就是越靠近現(xiàn)在時間點權重越高,夠很好地表示近期化趨勢。這其實也在時間子系統(tǒng)中定完成的,通過一種做指數(shù)加權移動平計算的方法,計算三個平均數(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"};當每次時鐘節(jié)拍到來時會調用 timer_interrupt,依次會調用到 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負載計算的核心它會獲取系統(tǒng)當前時負載值 calc_load_tasks,然后來計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載,并保存到 avenrun 中,供用戶進程讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當前瞬時負載值?active?=?atomic_long_read(&calc_load_tasks);?//?2平均負載的計算?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);?}獲取瞬時負載比較簡單就是讀取一個內存量而已。在 calc_load 中就是采用了我們前面的指數(shù)加權移動平法來計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載的。體實現(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;}雖然這個算法理解起來復雜,但是代碼看來確實要簡單不少計算量看起來很少而且看不懂也沒有系,只需要知道內并不是采用的原始平均數(shù)計算方法,是采用了一種計算,且能更好表達變趨勢的算法就行。此,我們開篇提到“負載是如何計算來的?”這個問題也有結論了。Linux 定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量匯總到一個全局系瞬時負載值中,然再定時使用指數(shù)加移動平均法來統(tǒng)計去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。三、平均負載 CPU 消耗的關系現(xiàn)在很多同學都平均負載和 CPU 給聯(lián)系到了一起。認為負載高、CPU 消耗就會高,負載低,CPU 消耗就會低。在很老的 Linux 的版本里,統(tǒng)計負載的時候實是只計算了 runnable 的任務數(shù)量,這些進程對 CPU 有需求。在那個年代里,載和 CPU 消耗量確實是正相關的負載越高就表示正 CPU 上運行,或等待 CPU 執(zhí)行的進程越多,CPU 消耗量也會越高。但是前面我們看了,本文使用的 3.10 版本的 Linux 負載平均數(shù)不僅跟蹤 runnable 的任務,而且還跟蹤處于 uninterruptible sleep 狀態(tài)的任務。而 uninterruptible 狀態(tài)的進程其實是不占 CPU 的。所以說,負載高并一定是 CPU 處理不過來,也有可會是因為磁盤等其資源調度不過來而得進程進入 uninterruptible 狀態(tài)的進程導致的!為什么要么修改。我從網(wǎng)上到了遠在 1993 年的一封郵件里找到了原因,以下是件原文。From:?Matthias?Urlichs?