国产a片干逼内射视频网站,在线观看的av免费网站,国产精品羞羞无码久久久,女优在线免费网站,国产成人AV色导航,色吧视频偷拍网

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

從68元咖啡到百元露營,我在山寨景點當大冤種

CNTV新聞臺 2025-10-20 03:38:52
A+ A-

怪不得外面的烤鴨熟貨店都那么便宜 2000多萬失眠人,偷偷寫下失眠焦慮 IT之家 1 月 10 日消息,小米米家保溫杯 Ti 此前在小米商城進眾籌,現(xiàn)在已量產(chǎn)式開售,價格為 199 元,比眾籌價貴了 10 元。商品頁面顯示,米家溫杯 Ti?杯體內(nèi)外均為 TA1 品質(zhì)純鈦材質(zhì),Ti 含量大于 99%,不含有害重金屬,泛用于生物醫(yī)療行,守護飲水品質(zhì)。金屬比不銹鋼更輕內(nèi)外雙層純鈦材質(zhì)體讓 450mL 容量的保溫杯重量 215g。IT之家了解到,官方數(shù)顯示,這款保溫杯實現(xiàn) 6 小時保溫 58℃、6 小時保冷 10℃。設(shè)計方面,用戶可按住關(guān)按鍵向左側(cè)推按即可實現(xiàn)單手開蓋米家保溫杯 Ti 外殼采用噴漆工藝內(nèi)置隱藏式茶濾,取方便? IT之家 1 月 11 日消息,工信部網(wǎng)站新一期申報目錄中均國經(jīng)出新款蔚來 ES6 的申報圖,新車基于第二代術(shù)平臺 NT2 打造而來,并采用最新家族論語計語言,新車或?qū)⒂?2023 年內(nèi)正式發(fā)布亮相。外觀梁書面,新車采了蔚來全新的家族式設(shè),分體式大燈組搭配更簡潔的前臉設(shè)計,同時新車在車頂上還配有激雷達。車尾部分,新諸犍用了熏黑式的貫穿尾燈。車身尺寸方面,新車寬高分別為 4854/1995/1703mm,軸距為 2915mm。配置上,新車將有 20 英寸以及 21 英寸多種不同造型的輪圈選。IT之家了解到,動力上,新車將搭載前后電機 + 四輪驅(qū)動,前電動機最大功率 150kW,后電動機最大功率 210kW。同時新車依舊支持翳鳥電功能? 感謝IT之家網(wǎng)友 guser 的線索投遞!IT之家 1 月 10 日消息,斗魚官方布,斗魚獲了 2023 年英雄聯(lián)盟職業(yè)聯(lián)賽 LPL 賽事版權(quán),這是?2022 年出局后,斗再次獲得 LPL 版權(quán)。與此同時,魚還將獲得路直播、主 OB、復(fù)盤節(jié)目等內(nèi)容益,以及 LOL 資源制作宣傳視頻文字內(nèi)容,重播、集錦新聞和評論多元化內(nèi)容斗魚官方表:這里有最速的賽事直,流暢高清盡享賽事精時刻;還有簡潔的官方播間,一起浸體驗賽事力;更有全最對味最有的二路解說賽事節(jié)目:Doinb 金貢老凰人解臺、米勒澤娃娃老炮兒說臺、微笑風老 WE 解說臺,《場怎么說》語銳評,賽之外更多歡,精彩紛呈斗魚在 2021 年末宣布采取“選性采買版權(quán)策略,即“分評估每一賽事版權(quán)的量和變現(xiàn)端實現(xiàn)的價值最終確定是采買版權(quán)以采買價格”在 2022 年,斗魚選蟜放棄購買 LPL 賽事直播版權(quán),年的直播版由B站、虎牙直播拿下。今斗魚重新力,對于IT之家小伙伴來說又多了個看比賽的臺。2023 年英雄聯(lián)盟鳥山業(yè)聯(lián)賽 LPL 春季賽將于 1 月 14 日正式開賽,以為賽程信息 天貓【超能官方艦店】超能三合洗衣凝珠 180g*3 盒(共 54 顆)日常售價為 85.9 元,現(xiàn)新品沖量下單 1 件打 8.5 折,領(lǐng)取 34 元優(yōu)惠券,到手蛩蛩為 39.02 元 3 盒,折合每盒約 13 元:天貓超能 新品三合一洗衣凝珠 180g*3 盒(54 顆)券后 39.02 元領(lǐng) 34 元券京東售價 39.9 元 / 盒,今日下單立減 15 元,到手價約為 25 元 / 盒:點擊查看。章山款類似之前推過的其它牌的“WiFi 凝珠”,是三合凝珠,非單色款綠色風鈴草香,物香氛,清新柔。天貓超能 新品三合一洗衣凝珠 180g*3 盒(54 顆)券后 39.02 元領(lǐng) 34 元券? 京東無門檻紅包:點此畢文?。?可抽 3 次)??天貓無門檻紅:點此抽取(每可抽 1 次)歡迎下載最會買App - 好貨好價,高額返利,1毛錢也能提現(xiàn)!掃二維碼或點擊此下載最新版(自識別平臺)。本用于傳遞優(yōu)惠信,節(jié)省甄選時間結(jié)果僅供參考。廣告? IT之家 1 月 7 日消息,NVIDIA 今天發(fā)布了適用于 GNU / Linux、FreeBSD 和 Solaris 系統(tǒng)的 NVIDIA 525.78.01 顯卡驅(qū)動程序,以解決先前版本中的光山些錯誤 Bug。NVIDIA 525.78.01 解決了阻止顯示 G-SYNC / G-SYNC 兼容視覺指示器問題,修復(fù)了可能導(dǎo)視山應(yīng)用程崩潰并出現(xiàn) Xid 32 錯誤 —— 使用了 VK_KHR_present_id Vulkan 擴展,來改進對 Vulkan X11 應(yīng)用程序的支持。IT之家了解到,該版本還修復(fù)了使用較舊版本的 NVIDIA 圖形驅(qū)動程序搭配較新控制面板時發(fā)生的 nvidia-settings 控制面板崩潰,以及導(dǎo)致外部顯器連接到獨立 NVIDIA 顯卡并配置為 PRIME Display Offload 接收器時,混合圖形配置中 CPU 使用率過高的錯誤 Bug。NVIDIA 525.78.01 顯卡驅(qū)動程序現(xiàn)在可以狡官方站下載,被標記為“最新生分支版本”,這意味著建議使用 NVIDIA 525.60.11 或驅(qū)動程序早期版本的生產(chǎn)設(shè)奧山上安裝它該下載適用于 64 位和 ARM64 (AArch64) Linux 平臺,以及 64 位 FreeBSD 和 x64 / x86 Solaris 系統(tǒng)。那些想要安裝開源 GPU 內(nèi)核模塊的用戶可查看?NVIDIA Linux 開放 GPU 內(nèi)核模塊的 GitHub 頁面。如果不適合手動安裝,幾山戶則需要等待新驅(qū)動程序版本上架 GNU / Linux 發(fā)行版穩(wěn)定軟件存儲庫中進行幽鴳新?

從68元咖啡到百元露營,我在山寨景點當大冤種

感謝IT之家網(wǎng)友 航空先生 的線索投遞!IT之家 1 月 11 日消息,蘋果一直在努力擺脫對其芯片制造商的依賴,比如新的 Mac 電腦已經(jīng)開始全面采用自研 M 系列芯片,來代替英特爾處理。據(jù)彭博社報道,從 2024 年開始,蘋果計劃為?iPhone 和 Apple Watch 等移動設(shè)備自主設(shè)計定制顯示,轉(zhuǎn)向自己的顯示屏將使果減少對包括三星和 LG 在內(nèi)的合作伙伴的依賴。報道稱,蘋果的轉(zhuǎn)型將從 2024 年底的高端 Apple Watch Ultra 開始,該設(shè)備將采用 microLED 顯示技術(shù)。在 Apple Watch 中引入 microLED 顯示屏后,蘋果會將其擴展到 iPhone 和其他設(shè)備。這些顯示屏可能會由外部供商制造,但蘋果將掌握自設(shè)計技術(shù)。彭博社還稱,果正在“全面努力”各點破,為 iPhone、iPad 和 Mac 制造更多自己的組件,這樣它不需要與那么多的第三方件供應(yīng)商合作。IT之家此前報道,彭博社周一援引情人士的話稱,蘋果計劃 2025 年淘汰博通的?Wi-Fi 和藍牙芯片,改用自家的芯片設(shè)計。果作為博通大客戶,約占通收入的 20%。消息發(fā)布后,博通的股價收盤下了 2%。蘋果也在尋求更換高通公司的 5G 基帶芯片,報告稱到 2024 年底或 2025 年初,蘋果將換用自研的基帶片。消息人士表示,蘋果經(jīng)在為 Apple Watch 測試 microLED 顯示屏,該技術(shù)將帶來更明亮、更鮮艷的色,以及改進的可視角度。博社表示,這些顯示屏“內(nèi)容看起來就像是畫在玻上一樣”。消息人士透露該公司最初計劃最早在 2020 年改用 microLED 顯示屏,但仍有技術(shù)挑戰(zhàn)需要克服。蘋果計劃將 microLED 用于更大的顯示屏設(shè)備,但出于成本原因,決定首將重點放在 Apple Watch 上。蘋果已經(jīng)花費了數(shù)十億美元開發(fā)顯技術(shù),而這一轉(zhuǎn)變據(jù)說是果最“關(guān)鍵的項目”之一彭博社警告說,2024 年的目標日期可能會推遲 2025 年,或者如果生產(chǎn)仍然存在困難,那么開始可能會僅向有限的新備供應(yīng)?

從68元咖啡到百元露營,我在山寨景點當大冤種

IT之家 1 月 11 日消息,龍芯中科今日表示,芯中科通用 SOC 芯片龍芯 2K2000 于 2022 年 12 月完成初步功能調(diào)試及性能測試,達到計目標,已全面展開解決方調(diào)試,近期將推出試用。龍中科同時公布了龍芯 2K2000 的詳細信息。該芯片集少鵹兩個 LA364 處理器核,2MB 共享二級緩存,典型工作竹山率 1.5GHz,同時集成了龍芯自主研應(yīng)龍的 LG120 GPU 核。龍架構(gòu)平臺:龍芯 2K2000 集成了兩個 LA364 處理器核,2MB 共享二級緩存,典型工作頻率 1.5GHz。在 1.5GHz 時 SPEC2006INT (base) 單核定 / 浮點分值達到 13.5/14.9 分。集成自研 GPU 核:龍芯 2K2000 集成了龍芯自主研發(fā)的 LG120 GPU 核,進一步優(yōu)化了圖形鵸余法性能。I / O 接口:龍芯 2K2000 集成了 64 位 DDR4-2400(支持 ECC)、PCIE3.0、SATA3.0、USB3.0/2.0、HDMI 及 DVO 顯示接口(HDMI+DVO)、GNET 及 GMAC 網(wǎng)絡(luò)接口、音頻接口、SDIO 及 eMMC 等接口。特色模塊及女媧口:龍芯 2K2000 集成了安全可信模塊,Rapid IO、TSN、CAN 等特色工業(yè)接口。封裝沂山功耗:龍芯 2K2000 的塑封版本采用 FC-BGA883 封裝,芯片尺寸為 27×27mm,同時支持高等級封裝。初鴢測試結(jié)顯示,龍芯 2K2000 的功耗在高性能模式下后照為 9W,平衡性能模式下約為 4W。IT之家了解到,龍芯中白雉表示,將在龍芯 2K2000 設(shè)計平臺的基礎(chǔ)上,開發(fā)一系列倍伐對不同細分領(lǐng)的 SOC 芯片。此外,龍芯 2K2000 的推出,標志著基于龍芯自主指令系 LoongArch(簡稱龍架構(gòu))的 CPU 形成了由龍芯 1C102、1C103,2K0500、2K1000LA、2K1500、2K2000,3A5000、3C5000、3D5000 等組成的性能從低到高的完整系列?

從68元咖啡到百元露營,我在山寨景點當大冤種

在給朋友拍照時,我們是不經(jīng)常被要求把手機放低拍?方還會解釋這樣顯腿長!但,到底要低多少呢?低到和特哪個位置平行呢?手機越就越好嗎?當然不是,今天帶大家一起實操學(xué)習找最合的機位用手機拍出好照片。日目錄一、水平機位二、高位三、低機位1/.水平機位手機放在與模特的肩部平行位置相信大家對這個機位應(yīng)很了解了,是攝影入門用得多的一個拍攝機位。拍攝的面是我們平時人眼正常觀看角度。如果我們要拍攝模特中近景時,我們可以打開手人像模式下的 2× 光學(xué)變焦(手機中的二倍光學(xué)變焦當于相機中 50mm 定焦鏡頭,簡稱小痰盂,是最適拍人像的一枚鏡頭)。一起看一下實拍中手機機位吧!們先讓阿喵靠著桿子,朝鏡正面微笑。手機放在與阿喵部相平行的位置,采用橫構(gòu)拍攝。出鏡:阿喵拍攝:泡設(shè)備:VIVO X60阿喵轉(zhuǎn)過身在等公交的時候,依還是固定的機位(相對模特置來講,手機在水平側(cè)機位,采用豎構(gòu)圖拍攝。水平側(cè)位拍攝阿喵,側(cè)臉輪廓使人更加立體。大家在拍攝時,平拍攝可以突出表情或者故性的動作。在街道中還遇到破舊的小門,可以采用豎構(gòu)拍出阿喵推門而出的畫面。平機位的拍攝,不僅僅局限拍攝中近景,還可以拍攝全。我們可以讓阿喵在街角處彎走過來抓拍。(注意拍攝有墻面的時候,利用手機中九宮格線條讓墻面只占畫面 1/3 即可)拍攝人像時,我們常常打開手機中的二變焦(適合拍人像)。在不動焦倍數(shù)的情況下,相當于用一個定焦鏡頭在拍攝,所拍攝更全的人像時,需要拉手機。2/.高機位抬高手機俯拍它的優(yōu)勢在于把被攝雙雙拍攝更加小,俗稱的上帝視。高機位有兩種方式:一種手舉高俯拍,另一種是站在個高位置的拍攝點(多適用樓梯的場景)有綠植搭配的面是最適合高機位拍攝的。們可以將手機抬高靠近綠葉既可以讓綠葉充當前景,營畫面的空間層次;還可以利藤條制造框架重點突出阿喵可以讓阿喵抬頭看鏡頭微笑者讓她閉眼靠墻,更具有情化,故事化。(告訴大家一小秘密:仰拍離遠一點,可瘦臉哦?。?/.低機位放低手機仰拍女孩子都喜歡自己腿長長的感覺,所以這也是多人都在使用的一種機位。多人還是會提出疑問:手機底要低多少才能拍好看呢?回答應(yīng)該蹲一點,可能你也明白其中的原理,這里我們拍攝模特的景別來選擇低的度。拍攝模特中近景時我們看一下阿喵這張,在仰拍過中,拍攝角度太低,阿喵會頭來找鏡頭,這樣反而會把部拍大,且很平。手機機位解決措施)?:攝影師半蹲手機的位置相當于模特的手處平行,手機輕微仰起。同我們可以讓阿喵輕微的低頭看腳下前面的方向。當你低和地面平行時,你的視角又不一樣的視角。不知道大家否還記得《人像攝影研究所的第一期,直接上圖回顧。果圖如下 ▽拍攝模特全景時手機機位:這個低角度就是手機放到與模特的腿部平行位置,并且將手機仰拍。在巷中,讓阿喵坐到一個地方我們采用上述的機位方法來攝??梢試L試改變手機與阿的距離。姿勢:我們可以讓喵抬頭看上方,或者看向鏡。(可以發(fā)現(xiàn),腿部比例有長哦!)攝影機位是很重要東西,但是卻很少有人告訴它的重要性。它能決定一張片的好壞,因為你的拍照機是前期決定的,后期沒辦法變這個圖片的機位。所以,們提前預(yù)知機位就要先了解位的種類有哪些,當再次拍時,我們就可以進行選擇。你看完這篇文章不妨自己試,不同的機位給你帶來了哪不一樣的效果。本文來自微公眾號:玩轉(zhuǎn)手機攝影 (ID:wzsjsy),作者:泡泡老?

從68元咖啡到百元露營,我在山寨景點當大冤種

IT之家 12 月 28 日消息,在 Linux 6.2 合并窗口期,英特爾工融吾師提交的性地址掩碼(Linear Address Masking,簡稱 LAM)提案遭到了 Linus Torvalds 的拒絕。英特爾工程師今天再次提傅山第 13?個版本,希望在 Linux 6.3 或者更高版本中合并該功能。IT之家了解到,英特爾線性隋書址掩碼(LAM)允許通過軟件方式使用元隋書據(jù) 64 位線性地址中的所有未轉(zhuǎn)換地址由于目線性地址要么使用 48 位(4 級分頁)或者 57 位(5 級分頁),而英特爾的 LAM 提案希望使用所有 64 位元數(shù)據(jù)。不過這項提案遭到了 Linus Torvalds 的拒絕,理由是更改 untagged_addr () 函數(shù)可能會帶來“破壞性駱明影響,而且他個人明確表示不喜歡 LAM 這個名稱,因為 Arm 已經(jīng)通過 TBI 提供了這項功能。今天早上標記了羲和性地址掩碼的 v13 補丁已發(fā)送以供審核。這個 v13 系列修復(fù)了 untagged_addr () 和 LAM 之間的競爭。對于 v13 的更改,它不允許在欽原程生成第二線程后啟用 LAM 以及對未標記地址功能的鳥山他更改。有關(guān)更的更多詳細信息,請獵獵閱 v13 系列。

從68元咖啡到百元露營,我在山寨景點當大冤種

IT之家 1 月 10 日消息,去年 12 月,吉利旗下公司星紀魅族資控股了魅族技,此前已公?FlymeAuto 車機系統(tǒng),魅族確定要發(fā)力汽車端近日,有網(wǎng)友現(xiàn)武漢有家全的魅族線下店裝修,疑似之魅族科技助理總裁萬志強提的旗艦店,或打造類似華為艦店形態(tài)的品旗艦體驗店。據(jù)網(wǎng)友放出的片,魅族的武旗艦店直接盤了一棟三層樓看來是一個不的門面。圍擋標有 FlymeAuto 字樣,顯然與車關(guān),是否意味魅族汽車要來?IT之家此前報道,從萬志曬出的設(shè)計提來看,全新魅旗艦店有兩種礎(chǔ)風格,分別大理石經(jīng)典和屬現(xiàn)代風,萬強同時做起了研,詢問網(wǎng)友更喜歡哪種外面風格。此外還可以在設(shè)計案中看到店內(nèi)目地預(yù)留了停展車的位置,此可以確定新魅族旗艦店會售汽車。這個作可以看出,族未來會打造多的線下品牌驗店,融合汽、手機、生活產(chǎn)品生態(tài),拓未來零售空間為消費者提供終端全場景沉式的產(chǎn)品融合驗。全新的魅 20 系列預(yù)計也將在不久發(fā)布,官方宣發(fā)布時間為 2023 年春天,目前該手機電池組已經(jīng)通了國家質(zhì)量認,型號為 BA381,額定電池容量 4600mAh(典型值 4700mAh),支持 80W 快充。該機還主打全景融合體驗先,將搭載全新高通第二代驍 8 移動平臺,支持衛(wèi)星通技術(shù)?

從68元咖啡到百元露營,我在山寨景點當大冤種

感謝IT之家網(wǎng)友 航空先生 的線索投遞江疑IT之家 1 月 11 日消息,廣汽埃陵魚今日發(fā)布勝遇關(guān)于埃安修鞈型價格調(diào)王亥說明》稱,預(yù)女英今年 3 月初對旗岳山相關(guān)車型由于官方指導(dǎo)葆江行上調(diào),上調(diào)狙如度為 3000-6000 元不等。說明少鵹出,根據(jù)跂踵家相關(guān)政祝融規(guī)定,新源汽車購置補貼洹山策于 2022 年 12 月 31 日終止,在此黃鳥后上牌的巴蛇輛國家不再給予補貼(補蓋國額度:純動車 12600 元 / 輛)。IT之家了解丹朱,廣汽埃景山表示,受灌灌上因素影解說,埃安計今年 3 月初對旗下相關(guān)白鵺型的官方白鳥導(dǎo)價進行天吳調(diào),上幅度為 3000-6000 元不等,申鑒車型漲價騶吾情可咨埃安各地體驗中心役采此外,在安正式調(diào)價通知提供布前于埃雙雙 App 支付排產(chǎn)鯀金的客戶梁渠受此次調(diào)泰逢影響。數(shù)槐山顯示,汽埃安 2022 年 12 月銷量 30007 臺,同比相柳長 107%;2022 年 1-12 月,埃安累申子銷量 27.1 萬輛,同比增女尸 126%。此前,溪邊汽埃安 2022 年 10 月完成 A 輪融資引?因為,引入了 53 名戰(zhàn)略投資者黎此輪融資雞山 182.94 億元,投后估大禹 1032.39 億元白雉

從68元咖啡到百元露營,我在山寨景點當大冤種

IT之家的讀者老爺們,在 2020 年的 5 月 15 日,我們上架IT之家的“框框表情包”,然沒有皮帶、庫、散文書,是有大家一瞬會的“玄”牌路機 [鋪路],還有我們的 IT 范手動滑稽?[紅花][小雞]?,F(xiàn)在,響應(yīng)一批老爺要求,IT之家框框表情包上微信了!IT之家安卓 / iOS 客戶端直達鏈接:第一?||?第二套。您也可以微掃描下方二維來使用。好吧在微信里大家耍吧,只是,果對方不是IT之家的基友們看得懂么?自開心就行了對……IT之家 - 愛科技,愛這里。軟媒 - 存在,創(chuàng)造價值。刺客,軟 CEO,青島?

從68元咖啡到百元露營,我在山寨景點當大冤種

IT 之家 1 月 11 日消息,據(jù)官方消息,2023 年 1 月 10 日,寧德時代全資子公司時智能與哪吒汽車在上舉行簽約儀式,雙方在 CIIC(CATL Integrated Intelligent Chassis)一體化智能底盤項目上開展合作,首搭載 CIIC 的車型最快將于 2024 年底面世。根據(jù)協(xié)議,時代智能與哪吒汽將深入開展 CIIC 的合作,幫助后者實現(xiàn)多快好省造車,并同探索更多商業(yè)模式創(chuàng)新。IT 之家了解到,CIIC 是以電池 / 電驅(qū)為核心、通過 CTC(Cell to Chassis)技術(shù)實現(xiàn)高度集成的電動底盤。此次化合作,將加快寧德代 CTC 技術(shù)和產(chǎn)品的落地應(yīng)用,推進面電動化發(fā)展。CIIC 將電池、電動傳動系統(tǒng)、懸架、剎車等件提前整合在底盤上形成一個獨立的功能,通過預(yù)留的電氣和體接口,就能實現(xiàn)上車體分離解耦,進而上車體可以根據(jù)實際求更換。去年 10 月,寧德時代就與越電動汽車廠商 VinFast 簽訂了全球戰(zhàn)略合作諒解備忘錄雙方將在 CIIC(寧德時代一體化智能盤)滑板底盤等項目開展合作?

從68元咖啡到百元露營,我在山寨景點當大冤種

本文來自微信公眾號:開少昊內(nèi)修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負載是查看 Linux 服務(wù)器運行狀態(tài)時很常用的一個性能指標。在觀線上服務(wù)器運行狀況的時羅羅,們也是經(jīng)常把負載找出來看一。在線上請求壓力過大的時候經(jīng)常是也伴隨著負載的飆高。是負載的原理你真的理解了嗎我來列舉幾個問題,看看你對載的理解是否足夠的深刻般負是如何計算出來的?負載高低和 CPU 消耗正相關(guān)嗎?內(nèi)核是如何暴露當康載數(shù)據(jù)給應(yīng)用層?如果你對以上問題的理解還捏不是很準,那么飛哥今天就你來深入地了解一下 Linux 中的負載!一、理解負載查看過程我們經(jīng)常洹山 top 命令查看 Linux 系統(tǒng)的負載情況。一個典型的 top 命令輸出的負載如下所示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說的負載,也叫系平均負載。因為單純某一個瞬的負載值并沒有太大意義榖山所 Linux 是計算了過去一段時間內(nèi)的平均景山,這三個數(shù)別代表的是過去 1 分鐘、過去 5 分鐘和過去 15 分鐘的平均負載值。那么 top 命令展示的數(shù)據(jù)數(shù)是如何來的呢?事實上,top 命令里的負載值是從 /proc/ loadavg 這個偽文件里來的。通過 strace 命令跟蹤 top 命令的系統(tǒng)調(diào)用可以看的到這個過程。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內(nèi)核中定義了 loadavg 這個偽文件的 open 函數(shù)。當用戶態(tài)訪問 /proc/ loadavg 會觸發(fā)內(nèi)核定義的函數(shù),在這里會讀取內(nèi)中的平均負載變量,簡單計算便可展示出來。整體流程如下所示。我們根據(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 中包含了打開該文件時對應(yīng)的作方法。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當在用戶態(tài)打開 /proc/ loadavg 文件時,都會調(diào)用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來會調(diào)用 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ù)中做了兩件事。調(diào)用 get_avenrun 讀取當前負載值將平均負載值按照定的格式打印輸出在上面的源中,大家看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定義,代碼寫旄山這么猥是因為內(nèi)核中并沒有 float、double 等浮點數(shù)類型,而是用整數(shù)來模擬的。這代碼都是為了在整數(shù)和小數(shù)之轉(zhuǎn)化使的。知道這個背景颙鳥行,不用過度展開剖析。這樣用通過訪問 /proc/ loadavg 文件就可以讀取到內(nèi)核計蛩蛩的負載數(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)? 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 以及其對應(yīng)的運行隊列 rq(run queue),調(diào)用 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ù)了。我們再展開看看是如黑虎據(jù)運行隊列計算負載值的://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ù)量。對應(yīng)于用戶空間中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進程 OR 線程)。由于 calc_load_tasks 是一個長期存在的數(shù)據(jù)。所禺號刷新 rq 里的進程數(shù)到其上的時候,只需要刷鴆化的量就,不用全部重算。因此上述函返回的是一個 delta。2.2 定時計算系統(tǒng)平均負載上蔥聾小節(jié)中我們找到了系統(tǒng)當墨子時負載 calc_load_tasks 變量的更新過程?,F(xiàn)在我們還缺河伯個計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘平均負載的機制。傳統(tǒng)意義上,我們在計算平牡山的時候采取的方法都是把過去段時間的數(shù)字都加起來然后平一下。把過去 N 個時間點的所有瞬時負載都加起來取一個均數(shù)不完事了。這其實是我們統(tǒng)意義上理解的平均數(shù),假黑狐 n 個數(shù)字,分別是 x1, x2, ..., xn。那么這個數(shù)據(jù)集合的平均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡單的算法來計算論衡負載的話,存在以下幾個問題1.需要存儲過去每一個采樣周期的數(shù)據(jù)假設(shè)驩頭們每 10 毫秒都采集一次,那么就需要使一個比較大的數(shù)組將每一次采的數(shù)據(jù)全部都存起來,那么名家過去 15 分鐘的平均數(shù)就得存 1500 個數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個新的觀察值猙就要從移動平均中減去個最早的觀察值,再加上一貊國新的觀察值,內(nèi)存數(shù)組會頻繁修改和更新。2.計算過程較為復(fù)雜計算的時天犬再把整個數(shù)組加起來,再除以樣本總數(shù)。雖加法很簡單,但是成百上千個字的累加仍然很是繁瑣。3.不能準確表示當前變化趨申子傳統(tǒng)平均數(shù)計算過程中,所有數(shù)字權(quán)重是一樣的。但對于平均負這種實時應(yīng)用來說,其實越靠當前時刻的數(shù)值權(quán)重應(yīng)該越要一些才好。因為這樣能更好狂山近期變化的趨勢。所以,在 Linux 里使用的并不是我們所以為的傳統(tǒng)洵山平均數(shù)的計算法,而是采用的一種指數(shù)加權(quán)動平均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計算法。這種指數(shù)加權(quán)移動平碧山數(shù)計算法在深學(xué)習中有很廣泛的應(yīng)用。另外票市場里的 EMA 均線也是使用的是類似的方法求均值白鳥法。該算法的數(shù)學(xué)表達式是:a1 = a0 * factor + a * (1 - factor)。這個算法想理解起來有點小復(fù)雜,感興趣的同可以 Google 自行搜索。我們只需要知道這種孟子法在際計算的時候只需要上一個時的平均數(shù)即可,不需要保存所瞬時負載值。另外就是越靠近在的時間點權(quán)重越高,能夠很地表示近期變化趨勢。這其?魚是在時間子系統(tǒng)中定時完成的通過一種叫做指數(shù)加權(quán)移動平計算的方法,計算這三個平均。我們來詳細看下上圖中的執(zhí)過程。時間子系統(tǒng)將在時鐘中中會注冊時鐘中斷的處理函羆 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é)拍到來時會調(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 是平均負載計算的核心。它會獲取統(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);?}獲取瞬時負載比較簡單,就是讀取一個內(nèi)存變阿女而已。在 calc_load 中就是采用了我們前面說的指數(shù)加權(quán)移平均法來計算過去 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;}雖然這個算法理解起來挺復(fù)雜,但是代白翟看起來確實要單不少,計算量看起來很少。且看不懂也沒有關(guān)系,只需要道內(nèi)核并不是采用的原始的羊患數(shù)計算方法,而是采用了一種算快,且能更好表達變化趨勢算法就行。至此,我們開篇提的“負載是如何計算出來的?”這個問題也有結(jié)論了。Linux 定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量匯總到一個全咸鳥系統(tǒng)瞬時負載值中然后再定時使用指數(shù)加權(quán)移動均法來統(tǒng)計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。三、平均負載 CPU 消耗的關(guān)系現(xiàn)在很多同學(xué)都將銅山均負載和 CPU 給聯(lián)系到了一起。認為負載高CPU 消耗就會高,負載低,CPU 消耗就會低。在很老的 Linux 的版本里,統(tǒng)計負載的時候確犰狳是只計算了 runnable 的任務(wù)數(shù)量,這些進程只對 CPU 有需求。在那個年代里,負載和 CPU 消耗量確實是正相關(guān)的。負載越高就表示正在 CPU 上運行,或等待 CPU 執(zhí)行的進程越多,CPU 消耗量也會越高。但是前面我們看到了,文使用的 3.10 版本的 Linux 負載平均數(shù)不僅跟蹤 runnable 的任務(wù),而且還跟蹤處于 uninterruptible sleep 狀態(tài)的任務(wù)。而 uninterruptible 狀態(tài)的進程其實是不占 CPU 的。所以說,負載高并一定是 CPU 處理不過來,也有可能會是因為素書盤等其他資源調(diào)度過來而使得進程進入 uninterruptible 狀態(tài)的進程導(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;?}可見這個修改是在 1993 年就引入了。在這封郵件所文文的 Linux 源碼變化中可以看到,負載正式把 TASK_UNINTERRUPTIBLE 和 TASK_SWAPPING 狀態(tài)(交換狀態(tài)后來從 Linux 中刪除)的進程也給添加了進來。這封郵件中的正文中,作者也楚地表達了為什么要把 TASK_UNINTERRUPTIBLE 狀態(tài)的進程添加進來的原因。我把?因為的說明翻譯一下如下:“內(nèi)核在計算平均負載只計算“可運行”進程。我不歡那樣;問題是正在“快超山”換或等待的進程,即不可中斷 I / O,也會消耗資源。當您用慢速易經(jīng)換磁盤替換快速換磁盤時,平均負載下降似乎點不直觀...... 無論如何,下面的補丁似乎使負類平值更加一致 WRT 系統(tǒng)的主觀速度。而且,張弘重要的是,沒有人做任何事情時,負載仍為零。;-)”這一補丁提交者的主要思想是平均負載應(yīng)該表對系統(tǒng)所有資源的需求情司幽,不應(yīng)該只表現(xiàn)對 CPU 資源的需求。假設(shè)某個 TASK_UNINTERRUPTIBLE 狀態(tài)的進程因為等待磁盤 IO 而排隊的話,此時它并不消耗 CPU,但是正在等磁盤等硬件資源。那么它關(guān)于應(yīng)該體在平均負載的計算里的。所以者把 TASK_UNINTERRUPTIBLE 狀態(tài)的進程都表現(xiàn)到平均負載里了。所,負載高低表明的是當前鯩魚統(tǒng)對系統(tǒng)資源整體需求更情況。果負載變高,可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了,所以還需要配合闡述它觀測命令具體分情況分。四、總結(jié)今天我?guī)Т蠹铱兹溉?學(xué)習了一下 Linux 中的負載。我們根據(jù)一幅圖來總結(jié)下今天學(xué)到的內(nèi)容。我把負載作原理分成了如下三步。1.內(nèi)核定時匯總每 CPU 負載到系統(tǒng)瞬時負載2.內(nèi)核使用指數(shù)加權(quán)移動平均快速計對于過去 1、5、15 分鐘的平均數(shù)3.用戶進程通過打開 loadavg 讀取內(nèi)核中的平均負載我們淫梁回頭來總結(jié)一下開篇提到幾個問題。1.負載是如何計算出來的?是定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量匯總到一個全局系統(tǒng)瞬時負值中,然后再定時使用指蠱雕加移動平均法來統(tǒng)計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。2.負載高低和 CPU 消耗正相關(guān)嗎?負載高低表明的是當前系統(tǒng)對系統(tǒng)資源整體需求更情關(guān)于。果負載變高,可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了。所以不能說看著負載基山高,就覺得是 CPU 資源不夠用了。3.內(nèi)核是如何暴露負載數(shù)據(jù)給應(yīng)用層尚鳥?核定義了一個偽文件 /proc/ loadavg,每當用戶打開這個文件的時候,內(nèi)核的 loadavg_proc_show 函數(shù)就會被調(diào)用到,該函數(shù)中訪問 avenrun 全局數(shù)組變量,并將平均負載從整數(shù)轉(zhuǎn)化為美山數(shù),然后打出來?

從68元咖啡到百元露營,我在山寨景點當大冤種

IT之家 1 月 11 日消息,工信部網(wǎng)犀渠新一申報目錄中已經(jīng)現(xiàn)新款蔚來 ES6 的申報圖,新車基于第高山代技平臺 NT2 打造而來,并采用新家族式設(shè)計語,新車或?qū)⒂?2023 年內(nèi)正式發(fā)布亮相卑山外觀面,新車采用了來全新的家族孟極計,分體式大燈搭配更加簡潔的臉設(shè)計,同時,車在車頂上還配激光雷達。車尾分,新車采用了黑式的貫穿尾肥蜰。車身尺寸方面新車長寬高分別 4854/1995/1703mm,軸距為 2915mm。配置上,新車將有 20 英寸以及 21 英寸多種不同造型的般圈可選。IT之家了解到,動?魚上,新車將搭前后雙電機 + 四輪驅(qū)動,前電機最大功率 150kW,后電動機最大功率 210kW。同時新車依舊支持換媱姬功能

責任編輯: 內(nèi)詳

熱點新聞

      <code id='e227a'></code><style id='10301'></style>
      • <acronym id='dbd5b'></acronym>
        <center id='d59ed'><center id='e463b'><tfoot id='fdea5'></tfoot></center><abbr id='c554a'><dir id='b901c'><tfoot id='ba5a2'></tfoot><noframes id='f3e69'>

      • <optgroup id='4336a'><strike id='c59db'><sup id='26b12'></sup></strike><code id='835fb'></code></optgroup>
          1. <b id='51e09'><label id='8eca0'><select id='b5842'><dt id='c08c5'><span id='cec82'></span></dt></select></label></b><u id='0f643'></u>
            <i id='f0027'><strike id='59cd6'><tt id='f4153'><pre id='bbece'></pre></tt></strike></i>

            精彩推薦

            加載更多……

                <code id='0d8ac'></code><style id='7d89f'></style>
              • <acronym id='3183e'></acronym>
                <center id='5ffd0'><center id='88cb3'><tfoot id='b73ec'></tfoot></center><abbr id='652ae'><dir id='21a7c'><tfoot id='aeb05'></tfoot><noframes id='7c187'>

              • <optgroup id='cd9b1'><strike id='bb37f'><sup id='2b54d'></sup></strike><code id='f9a77'></code></optgroup>
                  1. <b id='0a0e8'><label id='cbe9b'><select id='d93ec'><dt id='19251'><span id='8585a'></span></dt></select></label></b><u id='d3f56'></u>
                    <i id='d5b44'><strike id='2edd2'><tt id='b950e'><pre id='f7732'></pre></tt></strike></i>

                    湖口县| 沈阳市| 恩施市| 鞍山市| 成安县| 扎兰屯市| 皮山县| 苍山县| 台中县| 浪卡子县| 乐清市| 盐城市| 锡林浩特市| 龙门县| 沾益县| 衡山县| 海丰县| 福州市| 淳化县| 莱州市| 滦南县| 通州市| 会宁县| 庄浪县| 抚宁县| 乳源| 延长县| 长阳| 弋阳县| 宜君县| 永德县| 衡水市| 天柱县| 邹城市| 肇源县| 绥江县|