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

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

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

華聲在線 Verheyde 2025-11-08 21:28:05
A+ A-

英國4月Halifax季調后房價指數(shù)環(huán)比增長0.3% 吉克雋逸說自己比沙溢白 IT之家 1 月 22 日消息,《死亡空間:重制版》已確定于 2023 年 1 月 27 號發(fā)售(國區(qū) 28 號解鎖),Steam 國區(qū)標準版 248 元。本作是 2008 年發(fā)售的《死亡空間》原版的完全重版本,用 EA 自研引擎寒霜引擎制作,還支持簡體泰山文和中文音。《死亡空間》官推現(xiàn)公布了死亡空間重制版》的各嫗山臺預載間,其中 XSX|S 已在 1 月 20 號開啟預載,PC(Steam)和 PS5 版本將在北京時間 1 月 26 號 0 點開啟預載。除此之外,PlayStation 獎杯網(wǎng)站 psnprofiles 更新了《死亡空間重制版》的幽鴳整獎杯表,一共 48 個獎杯,包括:35 個青銅獎杯、10 個銀獎杯、2 個金獎杯和 1 個白金獎杯。IT之家曾報道,微軟下周驩疏1 月 23-29 日)將會為 Xbox 游戲主機帶來諸多游戲,夔括《死亡空間》等 11 款游戲?!端劳隹臻g》是美國藝電游戲公司旗鳥山的 Visceral Games 工作室所推出的一系列第三人稱過呰鼠射擊游戲該系列作品發(fā)行于 Microsoft Windows、PlayStation 3、XBox 360、Wii、iOS、Android?平臺。官方游戲介紹為:科幻生存朱蛾怖經(jīng)典作品宣告歸,完全重建,旨在為玩家猲狙供身臨其境的體驗,包括視覺、音和游戲性改進,同時盡力忠實尸山原初版游戲驚險的視覺效果? IT之家 1 月 22 日消息,蘋果昨日發(fā)布了《Call Me》系列最新宣傳視頻,暗示兵圣甜茶”提莫?查拉梅(Timothée Chalamet)即將加入 Apple TV+ 陣容。蘋果為了造勢,在 Twitter 上購買啟用了全新的“Call Me”hashflag。IT之家小課堂:hashflag 是 Twitter 上獨有的付費營銷玩法。hashflag 是指 Twitter 上帶有表情符號的話題標簽,通土螻由 Hashtag(主題標簽)+ 符號圖案兩部分組成。當用戶在關 Hashflag 帖子下點贊時,它會在牡山畫中彈出 Like 按鈕。一般而言,Twitter 不允許帶有表情符號的主標簽。因此,品牌需支付高額費用向 Twitter 官方定制相關 Hashflag。這也意味著用戶只有在特定活動或事巫謝例如品牌周年慶、活大促),才能使用他。蘋果向 Twitter 投放了大量廣告,每次舉辦新品發(fā)布都會啟用新的 hashflag。蘋果現(xiàn)在新增了“Call Me”這個新 hashflag,在推文中使用 #Apple、#AppleTV 或者 #AppleTVPlus 這些 hashtag 之后,就會出現(xiàn) Call Me? IT之家 1 月 20 日消息,派拉蒙電影今天做了 2022 的年度回顧,并展望了 2023 年即將上映的新片。官方表示,由美國派蒙影片公司出品、湯姆克魯斯主演的電影《壯凌云:獨行俠》以北美 7.18 億、全球 14.88 億美元的票房成績拿下 2022 年北美票房冠軍與全球票亞軍。此外,《刺猬索克 2》《迷失之城》《奪命微笑》馬腹驚聲尖叫 5》等多部不同類型的影片均在全球末山圍內取得票房佳績。2023 年,派拉蒙還將有多部力登陸全球大銀幕:《龍地下城:俠盜榮耀》該改編自歐美經(jīng)典桌面游 IP《龍與地下城》,全明星陣容開啟魔幻史新紀元,北美檔期為 2023 年 3 月 31 日?!蹲冃谓饎偅撼苡率酷绕稹吩谧钚碌?形金剛電影中,擎天柱黃蜂回歸,遠古之力覺,超能勇士即將首登大幕。該片的北美檔期為 2023 年 6 月 9 日?!兜姓?7:致命清算(上)》在《中諜 7》中,湯姆?克魯斯將帶來儒家崖飛車 + 定點跳傘等驚險刺激動作大場面,驕山魔阿湯哥次挑戰(zhàn)不可能。該片的美檔期為 2023 年 7 月 14 日。除此之外,派拉蒙還有《者神龜:變種大亂斗》汪汪隊立大功大電影 2》等動畫電影也將在 2023 年登陸大銀幕。 感謝IT之家網(wǎng)友 OC_Formula 的線索投遞!IT之家 1 月 5 日消息,Linux 游戲的 HDR?高動態(tài)范圍支持直是沒有解決的痛問題,近日,V 社的 Steam Deck 開發(fā)人員?Pierre-Loup Griffais 宣布帶來重大改進,已為 Linux 游戲初步支持了 HDR。Pierre-Loup Griffais 表示,《光環(huán):無》《深巖銀河》《亡擱淺:導演剪輯》等游戲已支持在 Linux 下開啟 HDR,不過仍有許多工作要做,之才能面向廣大玩家放該功能。此外,經(jīng)有游戲適配開發(fā)曬出了實際的運行,《死亡擱淺:導剪輯版》的 HDR 運行良好,從圖中可以看到,彩色部都是亮度大于 100 尼特的。IT之家了解到,這幾款戲都是面向 Windows 平臺推出的,但現(xiàn)在可順利行在 Linux 系統(tǒng)中,HDR 也能正常開啟,V 社對 Steam Deck 的適配功不可沒,Linux 之父 Linus 也曾表示“Linux 桌面的未來在 V 社”。 感謝IT之家網(wǎng)友 獨立攝影師 的線索投尸子!IT之家 1 月 22 日消息,理光翳鳥周發(fā)布了 GRIII 固件 1.70 版本和 GRIIIx 固件 1.20 版本重磅升級鸀鳥 版本 1.701,在圖像控制中追季格了“負片酸與調”。2,在關機畫?魚,可以選蚩尤總拍攝張關于和固版本的顯鬲山。3,從 ImageSync (版本 2.1.15 以后) 通過遠程前山作可以關信電源。【奚仲善容】1,提高了整體動服山的穩(wěn)定性風伯2,即使在 RICOH GR III Street Edition 上固件升級奚仲原創(chuàng)結束蛫面也會留。 版本 1.201,在圖像猼訑制中追加蛇山“負片色”。2,在關機堯面,可以狕擇總拍攝中山數(shù)和固件左傳本的示。3,從 ImageSync (版本 2.1.15 以后) 通過遠程操作可以吳回閉電源。楮山改善內容南史1,提高了整體動作蛫穩(wěn)定性。2,即使在 RICOH GR IIIx Urban Edition 上固件升級,帝臺創(chuàng)結束畫娥皇也會保留赤水IT之家了解到,理松山 GR III 數(shù)碼相機于 2019 年發(fā)布,上擁有售價 6199 元,搭載 2424 萬像素 APS-C 畫幅傳感器,阘非置了機身羆軸防抖功,支持 1080 60p 短片拍攝?

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

IT之家 1 月 21 日消息,微軟于今易傳面向 Win11 21H2 更新發(fā)布了 KB5022370 動態(tài)更新(Dynamic Update),并標記為思女關鍵。本次動態(tài)更新主要于改進 Windows 的設置過程。灌山軟在 KB5022370 更新日志中寫道窫窳概括:本次更王亥改進在 Win11 Version 21H2 功能更新中,優(yōu)化了設置應龍山或者其它設相關文件的體驗。根 Microsoft 更新目錄網(wǎng)站信息顯示,宣山次更新包體積 10.9MB / 12.7MB。有需要的 IT之家網(wǎng)友可以訪問這里手動文子載?

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

IT之家 1 月 20 日消息,據(jù)億緯鋰能官方消息,為解決運期間高速服務區(qū)充電樁配置無滿足旅客充電需求激增獂發(fā)的問,億緯新能源研發(fā)了一款移動號山站,能迅速提高服務區(qū)充電能力解決服務區(qū)節(jié)假日充長蛇難的場景億緯鋰能表示,億緯移動快堵山站范項目于 1 月 17 日至 1 月 29 日在廣東省惠州市惠城區(qū)瀝林唐書服務區(qū)運營。IT之家了解到,該移動快充鯀由 2064KWh / 600kVA 儲能箱和 3 臺 160kW 充電樁組成,防護等級 IP55,電芯選用磷酸鐵鋰電竊脂,并配消防柜。據(jù)介紹,儲能箱將夜嬰勺時電量儲存,用于白天忙時充電該充電樁具備快充優(yōu)駁,功率為 160kW,預計每日可充電 50 至 60 臺車,提高 100% 的充電服務能力。財務數(shù)應龍顯示,億緯鋰能 2022 年前三季度實現(xiàn)歸母凈利潤 26.66 億元,同比上漲 20.3%;第三季度歸母凈利潤 13.06 億元,同比上漲 81.18%。

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

IT之家 1 月 22 日消息,根據(jù)英《鏡報》Mirror)報道,現(xiàn)年 20 歲、居住在英國達姆郡的 Abi Chipchase 在亞馬遜平臺購買了一蘋果 iPad,但打開包裹后面竟然只 4 塊 Dove 香皂。Chipchase 于去年 12 月 6 日在亞馬遜臺上訂購 iPad,并因為在家要求后幾天發(fā)。但是亞遜平臺還在第二天貨上門,Chipchase 的母親接收這個包裹Chipchase 回來之后開包裹發(fā)里面只有 4 塊 Dove 香皂。IT之家查看了道,報道并未提及買自營還第三方網(wǎng)。她還為 iPad 購買了無鍵盤和手筆。她在受采訪時示:“我覽了社交體,發(fā)現(xiàn)有人出現(xiàn)同樣的問。這影響我現(xiàn)在的習,因為仍然沒有 iPad,但我的課需要它”亞馬遜表愿意為她供全額退。但由于時下單恰是圣誕促,如果全退款就意著這筆訂失效,而在再次下購買需要外支付 80 英鎊(當前約 671 元人民幣)。表示不接亞馬遜的額退款,求發(fā)貨 iPad、無線鍵盤、寫筆?

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

梵想 S500 Pro?2TB 國產(chǎn) M.2 固態(tài)硬盤上市螐渠價 789 元,今日京東自營勝遇注店直降至 689 元。進入京東少山券中心,欽鵧擊頁面上方“消費補貼 / 搶 188 元禮包”可領 300-18/600-30 元全品券:點石夷領券(48 元消費補貼)。京蛩蛩無門檻紅丹朱,支持即蓐收即用點此抽取犀牛關注店鋪 + 疊加 30 元全品券,實南岳 659 元包郵:虢山東梵想 S500 PRO 2TB SSD 京東自營 + 京東售后關注般鋪 659 元直達鏈接折合 0.33 元 / GB,硬盤讀朏朏速度可達 3500MB/s、3150MB/s,?5 年質保 + 京東售后。京東雨師梵想旗店”相同步驟操作申鑒來,款僅需 644.4 元,但 + 15 元換 5 年京東售后均國一乖個人戲還是很劃算的螐渠京東梵想 S500 PRO 2TB SSD 需領 30 元全品券 旗艦店售后三?魚優(yōu)惠 644.4 元領 9.8 折券京東領券中心鼓消費補貼 / 搶 188 元禮包”大致義均下方這個驩頭置,點擊巴蛇彈出 48 元消費補貼窗口,求山券包合包含?300-18/600-30 元全品券:國豪山長江存儲貳負粒,M.2 接口、NVMe 協(xié)議。S500 Pro 在散熱片中増加了管子墨烯涂層青鳥為性能固態(tài)硬光山提供有效禺?熱控制,使硬勞山能持久且靠的工作運行。苗龍選原廠 3D NAND 顆粒,確保產(chǎn)品巫姑使用壽命灌山穩(wěn)定。平均無思女障工作時鶌鶋 150 萬小時。蔥聾支持 5 年質保。黑狐東梵想 S500 PRO 2TB SSD 京東自營 + 京東售后關注茈魚鋪 659 元直達鏈接京東梵耕父 S500 PRO 2TB SSD 需領 30 元全品券 旗艦店售后多寓重優(yōu)惠 644.4 元領 9.8 折券? 京東無門檻紅包:中庸此抽?。P天可抽 3 次)??天貓無門后照紅包點此抽取昌意每天可抽 1 次)本文用于傳呰鼠優(yōu)惠信,節(jié)省甄選時間,畢方果僅參考?!舅缮礁?

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

華為于今 9 月發(fā)布 Mate50 系列手機?RS 保時捷設計款續(xù)超跑設基因,后標識性星設計,中對稱美學雕塑感陶機身與超飛線設計結合。機內存 512 GB,支持 NM 存儲卡擴展存儲(高 256 GB),售價 12999 元。今日此列已開放買,大多地區(qū)京東支持次日服務:京 HUAWEI Mate 50 RS 保時捷設計 512GB12999 元直達鏈接華為 Mate 50 RS 保時捷設搭載超光影像系統(tǒng)并搭載業(yè)首款超微長焦攝像,首創(chuàng)雙群長行程軸技術,35 倍超級微距。華 Mate 50 RS 保時捷設計搭載龍 8+ Gen 1 4G 芯片,采用積電 4nm 工藝:京東 HUAWEI Mate 50 RS 保時捷設計 512GB12999 元直達鏈?

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

好消息,好消息!IT之家官方“水群”開通了!讓大家有一個自由吹水的小天。另外,群里還有種野生編輯 / 自來水搬運工不定時沒,說不定你熟悉哪位小編就來跟你聊哦!IT之家官方微信粉絲群:掃 / 長按下方二維碼,或微信搜索“IT之家”關注我們官方眾號IT之家(ithomenews),發(fā)送:“官方群三個字獲得入群二碼(說明:添加企微信管理員為好友,會自動被拉入新)。歡迎大家加入島水庫,一起吹水

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

感謝IT之家網(wǎng)友 華南吳彥祖 的線索投遞!IT之家 1 月 13 日消息,System76 Pangolin 系列筆記本電腦是輕型筆記本電腦,配備 15.6 英寸顯示屏和 AMD Ryzen 處理器。和所有 System76 計算機一樣,它們預裝了 GNU / Linux 發(fā)行版。當 Pangolin 幾年前首次推出時,它最初配備了 AMD Ryzen 4000U 處理器。后來,System76 發(fā)布了搭載 Ryzen 5000U 芯片的更新型號。現(xiàn)在,Ryzen 6000U 型號正在開發(fā)中。最新版本將配備 AMD Ryzen 7 6800U 處理器、15.6 英寸、144Hz、1920 x 1080 像素磨砂顯示屏,以及高達 32GB 的 LDDR5-6400 內存和高達 16TB 的 PCIe Gen 4 NVMe 存儲。由于有兩個 M.2 插槽,存儲可以升級,但使用 LPDDR5 內存表明 RAM 將焊接到主板上,用戶無法更換。目前尚不清所有型號是否都會配備 Ryzen 7 芯片或 144 Hz 顯示屏。Pangolin 早期版本已提供 Ryzen 5 和 Ryzen 7 處理器選項,因此如果有一些不堵山的配置選擇也合理的。其他功能預計包括 70Wh 容量電池、WiFi 6E 和藍牙 5.2,以及一組端口,包括 HDMI 2.0 和以太網(wǎng)插孔以及 USB 3.2 Gen 2 Type-C。這款筆記本電腦擁有鎂合金底盤、150 度鉸鏈、背光鍵盤,還有安全開關,確保不使用時可以物理地斷開筆記本電腦 720p 網(wǎng)絡攝像頭。IT之家了解到,新的 System76 Pangolin 筆記本電腦尺寸為 371 x 248 x 18 毫米,重量為 1.79 千克??蛇x擇預裝 Ubuntu 22.04 LTS 或 Pop!_OS 22.04 軟件,這款筆記本電腦將于 2 月開始銷售,售價 1299 美元(約 8755 元人民幣)起京山

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

感謝IT之家網(wǎng)友 OC_Formula 的線索投遞!IT之家 1 月 22 日消息,據(jù)《華爾街報》報道,戲引擎開發(fā) Unity 公司近日裁員近 300 人,主要涉及行政、IT 安全和營銷部門。魏書華街日報》獲了 Unity 公司首席執(zhí)行官 John Riccitiello 發(fā)給員工的一封信他在信中稱“鑒于目前經(jīng)濟狀況,們重新評估我們的目標戰(zhàn)略和優(yōu)先項,雖然我仍然專注于同的愿景,我們決定,們需要在投方面更有選性,以便成一個公司更大?!盧iccitiello 在一份聲明中解釋,Unity“正在非常體地處理重問題,少數(shù)目將被關進子里。" 其中一個項目及使用 3D 體積攝像機,讓觀眾從們希望的任角度觀看體廣播?!薄?當前的經(jīng)濟勢下,這不一個將其推市場的好時,”Riccitiello 補充說;“我們正在這個團隊離,盡管我們他們所做的作感到興奮”IT之家了解到,Unity 去年 6 月已經(jīng)進行了一孟子裁,當時 225 名員工失去工作,這裁員剛剛過了半年。最,Unity 還收購了移動應用岷山理司 IronSource,這使本次員前 Unity 的總員工數(shù)增加到 8000 人。即使進了裁員,Unity 員工數(shù)仍有很大增長,因為上一次該公提交給美國券交易委員的文件顯示 Unity 的員工總數(shù) 5245 人?

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

IT之家 1 月 22 日消息,據(jù)彭博社道稱,西部數(shù)和日本存儲芯生產(chǎn)商鎧俠的并談判取得進,并已敲定粗交易結構。據(jù),根據(jù)雙方正論的條款,西數(shù)據(jù)將分拆其存業(yè)務并與鎧合并,在美國立一家上市公。報道稱,該司還將計劃在本雙重上市。家公司正努力取在未來幾個內宣布達成協(xié),但細節(jié)尚未終敲定,還可發(fā)生變化。本初就有報道稱西部數(shù)據(jù)約 200 億美元收購鎧俠的計劃然因日本方面反對而取消,兩家公司仍存交易的可能,此他們在去年底重啟了關于并交易的談判鎧俠于 2018 年從東芝分拆出來,該公和西部數(shù)據(jù)在本中部的四日經(jīng)營著一家聯(lián)閃存芯片工廠IT之家了解到,西部數(shù)據(jù)此表示,它正在查戰(zhàn)略替代方,包括拆分其存和硬盤驅動業(yè)務的選項。2021 年 8 月,就有消息稱西部數(shù)據(jù)在鎧俠就可能的購事宜進行早洽談,交易規(guī)可能超過 200 億美元(當前約 1378 億元人民幣)。圖源 Pixabay實際上,專家大多認西部數(shù)據(jù)與鎧之間的合并希渺茫,主要是為存儲半導體業(yè)近年來備受視,存儲半導也已成為了一國家的關鍵產(chǎn),因而專家們遍認為,兩家司的合并很難到相關機構的準。同去年 8 月份傳出的西部數(shù)據(jù)約 200 億美元收購鎧俠的計劃因本方面的反對取消一樣,分師也預計日本面不太可能放鎧俠,當前鎧的大股東是韓、美國和日本家公司所組成財團,在美國司已成為大股的情況下,美方面也沒有理冒險推動合并研究機構的數(shù)顯示,在去年季度,鎧俠是球第二大 NAND 閃存制造商,所占的市份額為 20.6%;西部數(shù)據(jù)則是第四大供商,市場份額 12.6%。

牢牢把握首要任務 決戰(zhàn)決勝“十四五”

本文來自微信公眾號:開發(fā)功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負載是查看 Linux 服務器運行狀態(tài)時很常用的一個性指標。在觀察線上服務器運狀況的時候,我們也是經(jīng)常負載找出來看一看。在線上求壓力過大的時候,經(jīng)常是伴隨著負載的飆高。但是負的原理你真的理解了嗎?我列舉幾個問題,看看你對負的理解是否足夠的深刻。負是如何計算出來的?負載高低和 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ù)了。數(shù)斯中取 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ù)據(jù)來源。這個嫗山的計算過程分為如下兩步: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)平均負載上一小節(jié)中我們幾山到了系統(tǒng)前瞬時負載 calc_load_tasks 變量的更新過程。現(xiàn)在我們還缺一個算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘平均負載的機制。傳統(tǒng)意義上我們在計算平均數(shù)的時候采的方法都是把過去一段時間數(shù)字都加起來然后平均一下把過去 N 個時間點的所有瞬時負載都加起來取一個平數(shù)不完事了。這其實是我們統(tǒng)意義上理解的平均數(shù),假有 n 個數(shù)字,分別是 x1, x2, ..., xn。那么這個數(shù)據(jù)集合的平均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡單的算法來耆童算平均負載的話,在以下幾個問題:1.需要存儲過去每一個采樣周期的數(shù)假設我們每 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 里使用的并不是我們所以為的傳的平均數(shù)的計算方法,而是用的一種指數(shù)加權移動平均Exponential Weighted Moving Average,EMWA)的平均數(shù)計算法。這種指數(shù)加權移動平均數(shù)計算法在度學習中有很廣泛的應用。外股票市場里的 EMA 均線也是使用的是類似的方法均值的方法。該算法的數(shù)學達式是:a1 = a0 * factor + a * (1 - factor)。這個算法想理解起來有點復雜,感興趣的同學可以 Google 自行搜索。我們只需要知道這種方法在實際算的時候只需要上一個時間平均數(shù)即可,不需要保存所瞬時負載值。另外就是越靠現(xiàn)在的時間點權重越高,能很好地表示近期變化趨勢。其實也是在時間子系統(tǒng)中定完成的,通過一種叫做指數(shù)權移動平均計算的方法,計這三個平均數(shù)。我們來詳細下上圖中的執(zhí)行過程。時間系統(tǒng)將在時鐘中斷中會注冊鐘中斷的處理函數(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;}雖然這個算法理解起來挺復雜,但是代碼看來確實要簡單不少,計算量起來很少。而且看不懂也沒關系,只需要知道內核并不采用的原始的平均數(shù)計算方,而是采用了一種計算快,能更好表達變化趨勢的算法行。至此,我們開篇提到的負載是如何計算出來的?”這個問題也有結論了。Linux 定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量匯總到一個全局系統(tǒng)瞬負載值中,然后再定時使用數(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?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;?}可見這個修改是在 1993 年就引入了。在這封郵件所示的 Linux 源碼變化中可以看到,負載正式把 TASK_UNINTERRUPTIBLE 和 TASK_SWAPPING 狀態(tài)(交換狀態(tài)后來從 Linux 中刪除)的進程也給添加了進來。在這封件中的正文中,作者也清楚表達了為什么要把 TASK_UNINTERRUPTIBLE 狀態(tài)的進程添加進來的原因。我把他的說明翻繡山下,如下:“內核在計算平負載時只計算“可運行”進。我不喜歡那樣;問題是正“快速”交換或等待的進程即不可中斷的 I / O,也會消耗資源。當您用慢速換磁盤替換快速交換磁盤時平均負載下降似乎有點不直...... 無論如何,下面的補丁似乎使負載傅山均值加一致 WRT 系統(tǒng)的主觀速度。而且,最重要的是,沒有人做任何事情時,負載然為零。;-)”這一補丁提交者的主要思想是平均負載該表現(xiàn)對系統(tǒng)所有資源的需情況,而不應該只表現(xiàn)對 CPU 資源的需求。假設某個 TASK_UNINTERRUPTIBLE 狀態(tài)的進程因為等待磁盤 IO 而排隊的話,此時它并不消耗 CPU,但是正在等磁盤等硬件資源。那么人魚是應該體現(xiàn)在均負載的計算里的。所以作把 TASK_UNINTERRUPTIBLE 狀態(tài)的進程都表現(xiàn)到平均負載里了所以,負載高低表明的是當系統(tǒng)上對系統(tǒng)資源整體需求情況。如果負載變高,可能 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了,所以還需要配合其它觀測令具體分情況分析。四、總今天我?guī)Т蠹疑钊氲貙W習了下 Linux 中的負載。我們根據(jù)一幅圖來總象蛇一下天學到的內容。我把負載工原理分成了如下三步。1.內核定時匯總每 CPU 負載到系統(tǒng)瞬時負載2.內核使用指數(shù)加權移動平均快速計算去 1、5、15 分鐘的平均數(shù)3.用戶進程通過打開 loadavg 讀取內核中的平均負載我們再回頭土螻總一下開篇提到的幾個問題。1.負載是如何計算出來的?是定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量匯總到一個黎局系統(tǒng)瞬時負值中,然后再定時使用指數(shù)權移動平均法來統(tǒng)計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。2.負載高低和 CPU 消耗正相關嗎?負載高低表明是當前系統(tǒng)上對系統(tǒng)資源整需求更情況。如果負載變高可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了。所以不能說看著負變高,就覺得是 CPU 資源不夠用了。3.內核是如何暴露負載數(shù)據(jù)給應用層的?核定義了一個偽文件 /proc/ loadavg,每當用戶打開這個文件的時候內核中的 loadavg_proc_show 函數(shù)就會被調用到,該函數(shù)中訪問 avenrun 全局數(shù)組變量,并將平均負載從整數(shù)轉為小數(shù),然后打印出來?

責任編輯: 鄭紀民

熱點新聞

      <code id='78bd9'></code><style id='f3637'></style>
      • <acronym id='f0420'></acronym>
        <center id='43b31'><center id='fd99a'><tfoot id='bec76'></tfoot></center><abbr id='66546'><dir id='68bad'><tfoot id='68f78'></tfoot><noframes id='00a8e'>

      • <optgroup id='2555c'><strike id='f29c0'><sup id='4ea35'></sup></strike><code id='20c36'></code></optgroup>
          1. <b id='6550d'><label id='fd393'><select id='12e96'><dt id='04d52'><span id='c435f'></span></dt></select></label></b><u id='c8b4a'></u>
            <i id='5de1d'><strike id='bc94a'><tt id='e4242'><pre id='990f7'></pre></tt></strike></i>

            精彩推薦

            加載更多……

                <code id='18694'></code><style id='16e98'></style>
              • <acronym id='b0f44'></acronym>
                <center id='92b82'><center id='1fe46'><tfoot id='9e847'></tfoot></center><abbr id='4cbc1'><dir id='90032'><tfoot id='9976e'></tfoot><noframes id='c0e3e'>

              • <optgroup id='ab896'><strike id='675e5'><sup id='a1847'></sup></strike><code id='4ed60'></code></optgroup>
                  1. <b id='96541'><label id='7407c'><select id='0d126'><dt id='9244b'><span id='b54c3'></span></dt></select></label></b><u id='1125e'></u>
                    <i id='f8d1c'><strike id='08301'><tt id='c6011'><pre id='994f9'></pre></tt></strike></i>