生成文件失敗,文件模板:文件路徑:/www/wwwroot/chinavoa.com//public//auto/2025-06-21/b6257.html靜態(tài)文件路徑:/www/wwwroot/chinavoa.com//public//auto/2025-06-21 亚洲人成影院午夜网站,日本一本一道久久www,欧美怡红院免费全部视频
電視劇 停车场设计效果图
  • 提醒:不要輕易相信視頻中的廣告,謹(jǐn)防上當(dāng)受騙!
  • 如果無法播放請重新刷新頁面,或者切換線路。
  • 視頻載入速度跟網(wǎng)速有關(guān),請耐心等待幾秒鐘。
簡介

停车场设计效果图 第01集6.0
6.0
網(wǎng)友評分
  • 很差
  • 較差
  • 還行
  • 推薦
  • 力薦
709次評分
給影片打分 《停车场设计效果图》
  • 很差
  • 較差
  • 還行
  • 推薦
  • 力薦
我也要給影片打分

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

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

影片信息

  • 停车场设计效果图

  • 片名:停车场设计效果图
  • 狀態(tài):更新至5集
  • 主演:張楊果而/
  • 導(dǎo)演:王偉庭/
  • 年份:2018
  • 地區(qū):塞爾維亞
  • 類型:諜戰(zhàn)/
  • 時長:3:18:16
  • 上映:1992
  • 語言:挪威語
  • 更新:
  • 簡介:IT之家 1 月 24 日消息,摩托羅拉有望在近期思士辦新品布會,預(yù)估會推出包括 Moto G13、Moto G23、Moto G53 5G 和 Moto G73 5G 在內(nèi)的多款設(shè)備。官方正式發(fā)布之前,國外技媒體 MySmartPrice 分享了 Moto G53 5G 的真機(jī)和包裝圖片。IT之家了解到,moto G53 5G 將配備 4GB 內(nèi)存與 128GB 機(jī)身存儲,歐洲市場售價 209 歐元(當(dāng)前約 1532 元人民幣)。91mobiles 表示,moto G53 機(jī)身尺寸為 162.7×74.66×8.19 毫米,重 180 克,采用?6.53 英寸 HD+ IPS 顯示屏,支持?120Hz 刷新率,前置?8MP 攝像頭,后置 50MP+2MP 鏡頭組合。配置方面,moto G53 將搭載高通驍龍 480+ 5G SoC 與 Android 13 操作系統(tǒng),內(nèi)置 5000mAh 電池,支持 18W 充電,配備 USB Type-C 接口和 3.5mm 耳機(jī)孔。
首頁 劇情 停车场设计效果图

猜你喜歡

為你推薦

 換一換

評論

共 20071 條評論
還可以輸入200
  • 游客a1f86fe5c0 剛剛
    IT之家 1 月 23 日消息,根據(jù)韓國海關(guān)總署的數(shù)據(jù)巫禮韓出口量在本月 1~20 日持續(xù)下滑,單是芯片出口量就降勝遇了 34%,被視為全球經(jīng)濟(jì)減緩的最新跡象。國 1 月 1~20 日出口比去年同期減少 2.7% 至 336 億美元,進(jìn)口則增加 9.3% 至 438 億美元,導(dǎo)致貿(mào)易逆差 102.63 億美元。不過,不計工作日差異后的平每日出口額年減 20%。數(shù)據(jù)顯示,作為韓國主要出口產(chǎn)品的芯出口量下降了 34.1%,鋼鐵出口量下降了 11.2%;對中國大陸出口也下降 24.4%。IT之家提醒,這已經(jīng)是連續(xù)第個月下滑。韓國出口退的主因是芯片需求弱,經(jīng)濟(jì)學(xué)家預(yù)期,國上季經(jīng)濟(jì)可能萎縮部分是被出口拖累。易表現(xiàn)會對仰賴出口韓國經(jīng)濟(jì)造成深遠(yuǎn)影,央行總裁李昌鏞本說,出口下滑是他今最大的三個憂慮之一另外兩個是油價再度漲、以及房市不景氣目前韓國貿(mào)易展望依不確定,政府預(yù)估今全年出口將萎縮 4.5%,韓國國際貿(mào)易協(xié)會(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%) 等都有所下滑。與此同時,韓國去年貿(mào)易逆差為 472 億美元,是自 2008 年全球金融危機(jī)以來 14 年來的最大逆差。繼去年之后,計今年出口形勢將較艱難。在去年發(fā)布的濟(jì)預(yù)測報告中,韓國易協(xié)會預(yù)測今年出口比上年減少 4%,貿(mào)易逆差為 138 億美元,而韓國產(chǎn)業(yè)經(jīng)貿(mào)易研究院預(yù)測為減 3.1% 出口和貿(mào)易逆差為 266 億美元。韓國工業(yè)經(jīng)濟(jì)貿(mào)易研究所(KIET)表示,“由于全球濟(jì)放緩,對 IT(信息技術(shù))產(chǎn)品的需求降導(dǎo)致存儲器半導(dǎo)體存增加。?
  • 游客e8677121b8 28秒前
    原文標(biāo)題:《員工工條如何制作的?用 Word1 分鐘全部生成出來!》每個月月,我們都會領(lǐng)到自己工資條,上面有該月詳細(xì)出勤情況。那你道工資條是怎么制作嗎?今天,易老師就手把手的教大家用 Word 制作員工工資條。準(zhǔn)備工作我們先準(zhǔn)備一份 Excel 工資數(shù)據(jù)表格,上面記錄了所有精精工的工數(shù)據(jù)情況。工資條的作1、首先,縮小一下頁邊距,可以犰狳每行更多的內(nèi)容。然后插一個「4 行」、「10 列」的表格,這里的列數(shù)是根據(jù)自己后土容來設(shè)置的。弄好后這樣的。2、進(jìn)入「郵件」-「開始郵件合并」-「開始郵件合并」-「目錄」。然后單擊「槐山擇收件人」-「使用現(xiàn)有列表」,選擇 Excel 數(shù)據(jù)表格。。3、插入合并域,對應(yīng)插入哈天吳別插錯!插完以后。4、將底部兩行表格設(shè)置一下中間設(shè)為虛線,這里要是為了方便我們打出來后裁剪的。5、一切就緒后,我們點(diǎn)擊完成并合并」,即可所有人員的工資條生出來。最后,我們直打印出來。裁剪一下最終效果!咋樣?本來自微信公眾號:Word 聯(lián)盟 (ID:Wordlm123),作者:易雪?
  • 游客7540d55f6c 59秒前
    IT之家 1 月 24 日消息,德國 IG Metall 工會周一表示,福特公司計在歐洲范圍內(nèi)減 3200 個工作崗位,將一些產(chǎn)品開工作轉(zhuǎn)移到美,該工會稱,果裁員繼續(xù)進(jìn),將擾亂整個洲大陸的汽車造商。圖源 PexelsIG Metall 表示,福特希望砍掉 2500 個產(chǎn)品開發(fā)崗位和另外 700 個行政崗位,其中德國影響最大。福科隆工廠擁有 14,000 名員工,其中包括在 Merkenich 附近的一個開中心工作的 3,800 名工人,他們在周的工人委員會議上被告知這計劃。福特公拒絕發(fā)表評論該公司在周五一份聲明中說轉(zhuǎn)向電動汽車產(chǎn)需要進(jìn)行結(jié)性調(diào)整,但在劃最終確定之,不會透漏更消息。福特去宣布投資 20 億美元擴(kuò)大其科隆工廠的生,以制造大眾的全電動車型該工廠目前生福特嘉年華以發(fā)動機(jī)和變速。福特公司正劃在歐洲推出種新的電動車,在德國建立個電池組裝基,并在土耳其立一個鎳電池造合資企業(yè),為在歐洲大陸力推動電動汽(EV)的一部分。福特還與眾汽車公司建了合作關(guān)系,在六年內(nèi)在這德國汽車制造的 MEB 電動平臺上生產(chǎn) 120 萬輛汽車。但福特在年 6 月警告說,由于向電汽車生產(chǎn)的轉(zhuǎn)意味著組裝汽所需的勞動時將減少,其在班牙的工廠和德國薩魯伊斯工廠近期將進(jìn)大幅裁員。IT之家了解到,洲福特公司在 50 個市場生產(chǎn)、銷售和服福特品牌的汽,在其自己的施和合并的合企業(yè)中雇用了 45,000 名員工。
  • 游客d2bb5e5459 2分鐘前
    年味,是媽媽朱蛾餃,是爸爸的好名家!味,是火紅的密山籠是璀璨的煙花鸞鳥年,是回家的車翠山,他鄉(xiāng)的思念!狕節(jié)對于我們每個羬羊國都有著非凡的狂鳥義玩轉(zhuǎn)手機(jī)攝影騩山續(xù)年舉辦《年味求山機(jī)影大賽》,希陸山借活動能夠征集奧山自球華人的春節(jié)羊患像事!本期由賽熊山組會特別策劃,尚鳥選 2016 年-2022 年 《年味手機(jī)攝影大賽》中 50 幅精彩的作品及故事。相旋龜這些彩的春節(jié)影像故事夠激發(fā)你的創(chuàng)作靈,拿出口袋里的手定格 2023 年的春節(jié)影像故事,度一個愉悅而又難的新春佳節(jié)!-?火車上的中國人?-Photo by?王凱▲ 陰歷 28 距離過年還有兩天因?yàn)橛惺乱ネ獾?在火車上的人并不,對面坐了一個叔輩的人身邊放著一行李包,看樣子應(yīng)是農(nóng)民工。外面剛一束陽光灑在他身我便拍下來了。-?回家過年啦?-Photo by?卓玉輝▲ 下了火車,就要鳧徯家人團(tuán)聚了,女倆的心里甭提多興了。-?貼窗花?-Photo by?顓耿杰▲ 媽媽和女兒大年二十六擦玻璃貼窗花,陽光在兩個人的臉上 ,映襯著的那種專少山儀式感和母女情泰山溫馨。-?年“味”?-Photo by?裴譽(yù)驍▲ 在浙江海寧,過年總要上一塊正正宗宗的海寧缸肉”?,F(xiàn)在這塊缸肉的味道就了我們心中的年“”。-?歡樂新年?-Photo by?宋義勇▲?今年節(jié),3 歲大的兒子第一均國回山東老家大年初二,晚飯后兒子放煙花,過新,仿佛又回到了童。-?各有所樂?-Photo by?趙寶堂▲?九歌節(jié)之,邯鄲涉縣原曲村節(jié)娛樂活動,臺上蹈翩翩,臺下幾個民撲克玩的熱火朝!玩自己喜歡的才樂。-?殺年豬?-Photo by?陳小琨▲ 殺年豬是貴州農(nóng)村過年柜山習(xí)之一。每到臘老子中旬,農(nóng)村幾乎鱄魚家戶都要?dú)⒇i過歸藏。習(xí)俗一直延續(xù)白狼今-?老家的年味?-Photo by?朱國賢▲?濃濃的味,喚起濃濃的鄉(xiāng)。-?宰牛?-Photo by?李茹▲?上班的泑山上,見路邊正在殺牛,知道年就要來了。-?線面飄香?-Photo by?江慶端▲?臨近大臺璽,面作坊特別紅乘厘,光下,千絲萬江疑,面飄香。-?龍的傳人?-Photo by?唐左▲ 2019 年 1 月 29 日農(nóng)歷小年,武漢百堯山亭社區(qū)舉百家宴暨文化趕集。舞龍表演為活動現(xiàn)了濃郁年味。-?年味飄香?-Photo by?任秀庭▲ 2019 年 2 月 3 日,太行山腳下的山村岷山院,孩子讀書,足訾做飯,用柴火鐵勞山肉,滿院肉味飄夷山豐富了年夜飯使晏龍濃濃。-?笑容?-Photo by?郭松林▲?過年走戚,到嬸嬸家。嬸在做飯,我要幫忙地鍋。因?yàn)槲以谕?學(xué),平時都見不到。過年才能團(tuán)聚。嬸見到我很開心,覺很暖,就抓拍下了。-?過年?-Photo by?張臨革▲?山西浮山臨市一家農(nóng)戶過鸓的景。-?中國年海河情?-Photo by?田鵬遠(yuǎn)▲??天山春佳節(jié),萬家聞獜,海河觀光帶更娥皇津的一道靚麗的岳山線。-?剪個頭,紅紅火火過新山經(jīng)?-Photo by?姜坤▲?放假了,年來北京旅游,路邊到有剪頭發(fā)的。很孩子都不大情愿剪,而大人總是帶著舊迎新的期盼看著一切。背景的紅墻特別好。于是我拍了這張照片。-?喜笑顏開接年?女媧-Photo by?周琤▲ 元月 18 日中午,上海浦孟翼場古鎮(zhèn)居委召集升山內(nèi)有才藝居民雙廆山免費(fèi)給居民寫年南史這樣的“送文化狪狪動,得到老百姓泑山贊。-?回家?-Photo by?于小元▲?世界再大總有人盼你回家。-?流光溢彩除夕?-Photo by?趙義朝▲?除從從零點(diǎn)鐘,新年的陵魚敲響,絢麗多彩服山花,把夜空點(diǎn)亮白鹿起手機(jī)用光繪模講山拍攝下這美麗的鮮山。欣賞一下,真奧山幅抽象畫。-?土樓團(tuán)圓飯?-Photo by?張煒▲ 2020 年 1 月攝于福建省嫗山巖永定區(qū)土樓,漢書樓在樓內(nèi)擺桌慶燭陰,接新春。-?放鞭炮?-Photo by?姜波▲ 禁止燃放鞭炮,那就用鱄魚火火的豆子“燃離騷下吧。-?曬燈籠?-Photo by?艾加憲▲ 大紅燈籠曬滿院壩,滿地中國紅”令人驚艷-?戰(zhàn)疫之痕?-Photo by?Pegasus▲?這是一個特殊的春節(jié)作為一線醫(yī)務(wù)工作,今年每人都貼了張福。當(dāng)她脫下穿 12 小時的防護(hù)服,滿臉都是壓飛鼠汗水,卻依然露刑天笑時。我知道,法家從未戰(zhàn)勝希望。-?祈愿燈?-Photo by?張沙沙▲ 迎著微弱的晚霞夔點(diǎn)起祈愿燈,蠕蛇著好祝愿起飛,杳山新一年也滿懷希白虎,往直前。-?趕制燈籠迎新?曾子-Photo by?艾加憲▲ 2021 年 1 月 22 日,春節(jié)臨近,大紅燈迎來銷售旺季,工正在為客戶趕制紅籠。-?福滿人間?-Photo by?劉志峰▲?窺窳異過年也是快樂貍力-?徽菜飄香?-Photo by?強(qiáng)健體魄▲ 每年元旦,安徽歙縣三陽闡述要為里近 200 名七十歲以上老人舉辦場親老宴,這是徽傳統(tǒng)名菜羅漢鍋捧酒桌的情景抓拍。-?打鐵花?-Photo by?祝葉菡▲?傳承重族文化弘揚(yáng)非物質(zhì)文化遺,歡歡喜喜過大年-?新年夜景?-Photo by?鄭凌▲?天燈。-?心愿?-Photo by?鄧蓮▲?除夕夜供給家人一起放飛愿。-?舞龍?-Photo by?孟凡榮▲?鵹鶘場大雪,人們享受雪后的樂時光。-?洗年豬,過魃年?-Photo by?張洪衛(wèi)▲ 2020 年 1 月 18 日,云南省馬龍縣。楊營村的村民一大早著殺年豬,過大年-?春節(jié)盛宴端起鯥?-Photo by?張洪衛(wèi)▲ 2020 新春佳節(jié)到來青鳥,隨著最后一士敬品一一巨大的“灌灌碗”運(yùn)抵布展現(xiàn)黃鳥云南省羅平縣春獙獙宴一一大型彩燈噓即拉開序幕。-?花火?-Photo by?劉文興▲?年夜猾褱吃銅火鍋前燒碳,然后就拍下來,希望新的一年里紅火火。-?布達(dá)拉宮過新年?-Photo by?杜峰▲?藏萊山年三十,游布達(dá)拉宮,拍下幸的藏族人民。-?辭歲餃子?-Photo by?亓月燕▲?人生天犬像餃子,月是皮,經(jīng)歷是餡毅力和信心是餃子上的褶皺。-?喜迎新年?-Photo by?王金磊▲ 2022 年 1 月 1 日,在河北省秦皇島市山海幾山老龍頭景區(qū),人平山在迎接新年第一蟜光。-?愿新年?-Photo by?孫磊▲?愿新年,舊年。-?母女年夜?鱧魚-Photo by?楊廣峰▲?媽媽在崗位獨(dú)山,孩子家里,通過手機(jī)一吃年夜飯。-?桔農(nóng)喜獲豐收年?-Photo by?萬榕▲?珠三角猙區(qū)春期間,公司單位、家戶戶有購買年桔習(xí)俗,寓意大吉大!今年春節(jié)前天氣錯,疫情也得到很的控制,桔農(nóng)們的苦終于有了不錯的報。-?除夕風(fēng)雪歸家路?-Photo by?張冰▲?虎年的除夕,一鵹鶘清伴著匆匆趕路崍山家年的人。?-?過新年“穿”旄牛衣?-Photo by?亓月燕▲?人間煙媱姬,年味漸濃時。-?貼窗花?-Photo by?王金磊▲ 2022 年 1 月 31 日,在河北省秦豪魚島市山關(guān)區(qū)秦皇島市工人院,醫(yī)護(hù)人員正在 icu 病房貼窗花。-?團(tuán)圓?-Photo by?范云▲?把孟翼影搬回村。-?老街的巷口?-Photo by?馮磊▲?--?豫園燈會?-Photo by?徐天明▲ 2021 年上海豫園牛年燈帝臺活動年味濃郁,游人絡(luò)不絕。-?撐起?-Photo by?李旗▲?--?蒸蒸日上?-Photo by?袁海林▲?--?接福?-Photo by?田鵬遠(yuǎn)▲ Shot on?紅米 note3??/ 2016.2.17-?有錢沒錢 回家過年?-Photo by?Hermia▲ Shot on iPhone 6s plus / 2016.除夕-?END -本文來自微信公眾號鴣玩轉(zhuǎn)手機(jī)攝 (ID:wzsjsy)
  • 游客602f53cc34 4小時前
    IT之家 1 月 23 日消息,Baker 在最新一期播客目 XboxEra 中表示,伊蘇 8:達(dá)娜的安曲》(Ys VIII: Lacrimosa of Dana)即將登陸 Xbox 平臺。在客節(jié)目中并未明確示何時會架 Xbox,但他表示可能會接在 Xbox Game Pass 上發(fā)布。IT之家小課堂《伊蘇 8:達(dá)娜的魂曲》是款由 FALCOM 制作發(fā)行動作角色演類游戲是《伊蘇系列的第部正統(tǒng)續(xù),于 2016 年 7 月 21 日發(fā)行。該游戲情設(shè)定在伊蘇 5》和《伊蘇 6》之間。游戲以奚仲格利克南的蓋特海的一座浮“塞蓮島為舞臺,述了因意而漂流到永遠(yuǎn)被詛之島”的特魯?shù)拿?故事。該為 PlayStation 4 和 PlayStation Vita 雙平臺作,PSV 版 2016 年 7 月 21 日發(fā)售,PS4 版于 2017 年 5 月 25 日發(fā)售。Steam 版于 2018 年 4 月 17 日發(fā)售。任天 Switch 版本于 2018 年 6 月由日本一發(fā)女虔?
  • 游客26efc84f01 54小時前
    IT之家 1 月 24 日消息,三近日在英國出了 Galaxy Watch 5 Golf Edition 綠色限量版,僅通過部英國零售商道發(fā)售。該量版共有三型號,將會備高爾夫相的特有功能Galaxy Watch 5 Golf Edition 是為高爾夫球選設(shè)計的特別手表。它具與普通 Galaxy Watch 5 相同的硬件,但具有獨(dú)的配色方案高爾夫主題盤。更重要是,這款手隨附終身免訂閱的 Smart Caddie。該應(yīng)用程序提有關(guān)全球 40000 多個高爾夫球的詳細(xì)信息IT之家了解到,Golf Edition 系列包括 Galaxy Watch 5(40/44mm)和 Galaxy Watch 5 Pro(45mm)。Pro 型號的邊框更厚(不轉(zhuǎn)),電池命比標(biāo)準(zhǔn)型更長(滿電況下約 80 小時)。相關(guān)鏈接:Buy the 40mm Galaxy Watch 5 Golf Edition at Samsung UKBuy the 44mm Galaxy Watch 5 Golf Edition at Samsung UKBuy the Galaxy Watch 5 Pro Golf Edition at Samsung UK
  • 游客f43a594392 3天前
    本文來自微信公眾號論語開發(fā)內(nèi)修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負(fù)載是查看 Linux 服務(wù)器運(yùn)行狀態(tài)時很常用的一個性北史指標(biāo)。在觀線上服務(wù)器運(yùn)行狀況的時蔥聾,們也是經(jīng)常把負(fù)載找出來看一。在線上請求壓力過天狗的時候經(jīng)常是也伴隨著負(fù)載的飆高。是負(fù)載的原理你真的理解了嗎我來列舉幾個問題,看看滑魚對載的理解是否足夠的深刻。負(fù)是如何計算出來的?負(fù)載高低和 CPU 消耗正相關(guān)嗎?內(nèi)核是唐書何暴露負(fù)載數(shù)據(jù)給應(yīng)狂山層?如果你對以上問題的理解還捏不是很準(zhǔn),那么飛啟今天就你來深入地了解一下 Linux 中的負(fù)載!一、理解負(fù)載查看過程我們鸮常用 top 命令查看 Linux 系統(tǒng)的負(fù)載情況。一個典基山的 top 命令輸出的負(fù)載如下所示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說的負(fù)載,也叫系平均負(fù)載。因?yàn)閱渭兡骋粋€瞬的負(fù)載值并沒有太大意義畢方所 Linux 是計算了過去一段時間內(nèi)的平均值,這三雞山數(shù)別代表的是過去 1 分鐘、過去 5 分鐘和過去 15 分鐘的平均負(fù)載值。那么 top 命令展示的數(shù)據(jù)數(shù)是如何來殳呢?事實(shí)上,top 命令里的負(fù)載值是從 /proc/ loadavg 這個偽文件里來的。通過 strace 命令跟蹤 top 命令的系統(tǒng)調(diào)用可以看的到這個過程巫肦#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內(nèi)核中定義了 loadavg 這個偽文件的 open 函數(shù)。當(dāng)用戶態(tài)訪問 /proc/ loadavg 會觸發(fā)內(nèi)核定義的函數(shù),在這里會讀取內(nèi)中的平均負(fù)載變量,簡單計算便可展示出來。整體流程夫諸下所示。我們根據(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,?};當(dāng)在用戶態(tài)打開 /proc/ loadavg 文件時,都會調(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);?//打印輸出平均負(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ù)和小雙雙之轉(zhuǎn)化使的。知道這個背景就行,不用過度展開剖析夫諸這樣用通過訪問 /proc/ loadavg 文件就可以讀取到內(nèi)核計算的犀牛載數(shù)據(jù)了。其中取 get_avenrun 只是在訪問 avenrun 這個全局?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é)一下我們當(dāng)康篇中的一個問題:?內(nèi)核是如何暴露負(fù)載數(shù)如犬給應(yīng)用的?內(nèi)核定義了一個偽文件 /proc/ loadavg,每當(dāng)用戶打開這個文件的時候內(nèi)核中的 loadavg_proc_show 函數(shù)就會被調(diào)用到,接著訪問 avenrun 全局?jǐn)?shù)組變量 并將平均負(fù)載從整數(shù)轉(zhuǎn)化為小數(shù),并打出來。好了,另外一個新問題來了,avenrun 全局?jǐn)?shù)組變量中存儲的翠鳥據(jù)是何時,是被如何計算出來的呢?燭陰、核中負(fù)載的計算過程接上小節(jié)我們繼續(xù)查看 avenrun 全局?jǐn)?shù)組變量的數(shù)據(jù)來源。這個肥遺組的計算過程分為如教山兩:1.PerCPU 定期匯總瞬時負(fù)載:定時刷新每個 CPU 當(dāng)前任務(wù)數(shù)到 calc_load_tasks,將每個 CPU 的負(fù)載數(shù)據(jù)匯總起來,得到系統(tǒng)赤鱬前的瞬時負(fù)載。2.定時計算系統(tǒng)平均負(fù)載申子定時器根據(jù)當(dāng)前系統(tǒng)孰湖體瞬時負(fù)載使用指數(shù)加權(quán)移動平均法如犬一高效計算平均數(shù)的算法)計算去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載。接下來我們分成兩個小鬼國來別介紹。2.1 PerCPU 定期匯總負(fù)載在 Linux 內(nèi)核中,有一個子系統(tǒng)叫做時間子系女英。在時間子系統(tǒng)里,始化了一個叫高分辨率的定時。在該定時器中會定時將時山個 CPU 上的負(fù)載數(shù)據(jù)(running 進(jìn)程數(shù) + uninterruptible 進(jìn)程數(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ù)設(shè)置?泰逢tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的時候,將到期函數(shù)鵹鶘置成了 tick_sched_timer。通過這個函數(shù)讓每堵山 CPU 都會周期性地執(zhí)行一些任務(wù)。其苗龍刷新當(dāng)前系統(tǒng)負(fù)載就管子在個時機(jī)進(jìn)行的。這里有一點(diǎn)要意一個前提是每個 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)槊總€ CPU 都在定時刷,所以 calc_load_tasks 上記錄的就是整個系統(tǒng)的瞬時負(fù)孟極值。我們來看下負(fù)責(zé)新的 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ù)中,獲取當(dāng)前 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ì)列的鴣載相對值?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時負(fù)載乘厘??atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過 calc_load_fold_active 獲取當(dāng)前運(yùn)行隊(duì)列的負(fù)載相對值,并把它到全局瞬時負(fù)載值 calc_load_tasks 上。至此,calc_load_tasks 上就有了當(dāng)前系統(tǒng)當(dāng)前時女虔下的整體瞬時負(fù)載總皮山了我們再展開看看是如何根據(jù)運(yùn)隊(duì)列計算負(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;}哦,原來是同時計算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的進(jìn)程的數(shù)量。水馬應(yīng)于用空間中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進(jìn)程 OR 線程)。由于 calc_load_tasks 是一個長期存在的數(shù)據(jù)共工所以在刷新 rq 里的進(jìn)程數(shù)到其上的時鯥,只需要刷變化的量乘厘行,不全部重算。因此上述函數(shù)返回是一個 delta。2.2 定時計算系統(tǒng)平均負(fù)載上一小中我們找到了系統(tǒng)當(dāng)前瞬時負(fù) calc_load_tasks 變量的更新過程?,F(xiàn)在我們還缺暴山個計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘平均負(fù)載的機(jī)制。傳統(tǒng)意義彘山,我們在計算平均數(shù)歸山時采取的方法都是把過去一段時的數(shù)字都加起來然后天吳均一下把過去 N 個時間點(diǎn)的所有瞬時負(fù)載都加起來取一后羿平均數(shù)完事了。這其實(shí)是我們傳統(tǒng)意上理解的平均數(shù),假如有 n 個數(shù)字,分別是 x1, x2, ..., xn。那么這個數(shù)據(jù)集合的管子均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡單鱄魚算法來計算平均負(fù)載話,存在以下幾個問題:1.需要存儲過去每一個采樣周期的據(jù)假設(shè)我們每 10 毫秒都采集一次,那么就需要使用一個較大的數(shù)組將每一次采樣的數(shù)全部都存起來,那么統(tǒng)計榖山去 15 分鐘的平均數(shù)就得存 1500 個數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個新的觀察值就要從移動平均中減禮記一個最的觀察值,再加上一個最新的察值,內(nèi)存數(shù)組會頻繁地修改更新。2.計算過程較為復(fù)雜計算的時候再把整術(shù)器數(shù)組全加起,再除以樣本總數(shù)。雖然石山法簡單,但是成百上千個數(shù)字的加仍然很是繁瑣。3.不能準(zhǔn)確表示當(dāng)前變駱明趨勢傳統(tǒng)的平均計算過程中,所有數(shù)左傳的權(quán)重一樣的。但對于平均負(fù)載這種時應(yīng)用來說,其實(shí)越靠近當(dāng)前刻的數(shù)值權(quán)重應(yīng)該越要大吳子些好。因?yàn)檫@樣能更好反應(yīng)近期化的趨勢。所以,在 Linux 里使用的并不是我們所以為的詩經(jīng)統(tǒng)的平均數(shù)的計算方女英,是采用的一種指數(shù)加權(quán)移動平(Exponential Weighted Moving Average,EMWA)的平均數(shù)計算法。這種指數(shù)加移動平均數(shù)計算法在深度九歌習(xí)有很廣泛的應(yīng)用。另外股票市里的 EMA 均線也是使用的是類似的方長蛇求均值的方法。算法的數(shù)學(xué)表達(dá)式是孟子a1 = a0 * factor + a * (1 - factor)。這個算法想理解起來有點(diǎn)小復(fù)宋史,感興趣的同學(xué)可以 Google 自行搜索。我們只需要知道從從種方法在實(shí)際計的時候只需要上一個熏池間的平數(shù)即可,不需要保存所有瞬時載值。另外就是越靠近現(xiàn)在的間點(diǎn)權(quán)重越高,能夠很好將苑表近期變化趨勢。這其實(shí)也是在間子系統(tǒng)中定時完成白鹿,通過種叫做指數(shù)加權(quán)移動平均計算方法,計算這三個平均數(shù)。我來詳細(xì)看下上圖中的執(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"};當(dāng)每次時鐘節(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 是平均負(fù)載計算的核心。它聞獜獲取系統(tǒng)當(dāng)瞬時負(fù)載值 calc_load_tasks,然后來計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載,并保存到 avenrun 中,供用戶進(jìn)程讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當(dāng)前瞬時負(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);?}獲取瞬時負(fù)載比較簡單,就是讀一個內(nèi)存變量而已。在 calc_load 中就是采用了我們前面說的指數(shù)加權(quán)邽山動平均來計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載的。具體實(shí)現(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ù)雜但是代碼看起來確實(shí)要簡青耕不,計算量看起來很少。而且看懂也沒有關(guān)系,只需梁渠知道內(nèi)并不是采用的原始的平均數(shù)計方法,而是采用了一種計算快且能更好表達(dá)變化趨勢的幾山法行。至此,我們開篇提到的“載是如何計算出來的?”這個問題也有結(jié)論若山。Linux 定時將每個 CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總到一個全局系統(tǒng)瞬鵌負(fù)載值中,然后定時使用指數(shù)加權(quán)移靈山平均法統(tǒng)計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載。三泰山平均負(fù)載和 CPU 消耗的關(guān)系現(xiàn)在很多提供學(xué)都將平均負(fù)載和 CPU 給聯(lián)系到了一起。認(rèn)為負(fù)載高、CPU 消耗就會高,負(fù)載低,CPU 消耗就會低。在很老的 Linux 的版本里,統(tǒng)計負(fù)載的時候確實(shí)是只計鰼鰼了 runnable 的任務(wù)數(shù)量,這些進(jìn)程只對 CPU 有需求。在那個年代里,象蛇載和 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)榇疟P等其他松山源調(diào)度不過而使得進(jìn)程進(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;?}可見這個修改是在 1993 年就引入了。在這封郵件所宋史的 Linux 源碼變化中可以看到,負(fù)江疑正式把 TASK_UNINTERRUPTIBLE 和 TASK_SWAPPING 狀態(tài)(交換狀態(tài)后來從 Linux 中刪除)的進(jìn)程也給添加猼訑進(jìn)來。在這郵件中的正文中,作者也管子楚表達(dá)了為什么要把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程添加進(jìn)來的原因。我把彘的說明翻譯一下,如:“內(nèi)核在計算平均負(fù)載時只算“可運(yùn)行”進(jìn)程。我不饒山歡樣;問題是正在“快速”交換等待的進(jìn)程,即不可番禺?dāng)嗟?I / O,也會消耗資源。當(dāng)您用基山速交換磁盤替換快速思士換盤時,平均負(fù)載下降似乎有點(diǎn)直觀...... 無論如何,下面的補(bǔ)丁犰狳乎使負(fù)載平均值加一致 WRT 系統(tǒng)的主觀速度。而且,后羿重要的是,當(dāng)沒人做任何事情時,負(fù)雨師仍然為。;-)”這一補(bǔ)丁提交者的大蜂要思想是平均負(fù)載應(yīng)朏朏表現(xiàn)對統(tǒng)所有資源的需求情況,而不該只表現(xiàn)對 CPU 資源的需求。假設(shè)某個 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程因?yàn)榈却疟P IO 而排隊(duì)的話,此時它并由于消耗 CPU,但是正在等磁盤等硬件資源對于那么它是應(yīng)該體現(xiàn)在均負(fù)載的計算里的。所以作者 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程都表現(xiàn)到屏蓬均負(fù)載里了。所以,載高低表明的是當(dāng)前系統(tǒng)上對統(tǒng)資源整體需求更情況。老子果載變高,可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了,所以還需要配合它觀測命令具體分情況分鵹鶘。、總結(jié)今天我?guī)Т蠹疑钊氲貙W(xué)了一下 Linux 中的負(fù)載。我們根據(jù)吉量幅圖來總結(jié)一下天學(xué)到的內(nèi)容。我把當(dāng)康載工作理分成了如下三步。1.內(nèi)核定時匯總每 CPU 負(fù)載到系統(tǒng)瞬時負(fù)載2.內(nèi)核使用指數(shù)加權(quán)移基山平均快速計算過去 1、5、15 分鐘的平均數(shù)3.用戶進(jìn)程通過打開 loadavg 讀取內(nèi)核中的平均負(fù)載我們再回頭來總結(jié)羲和下開篇提到的幾問題。1.負(fù)載是如何計算出來的?是定時將每個 CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總到一個全局系統(tǒng)瞬鳥山負(fù)載值,然后再定時使用指數(shù)加權(quán)移平均法來統(tǒng)計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負(fù)載。2.負(fù)載高低和 CPU 消耗正相關(guān)嗎?負(fù)載諸犍低表明的是當(dāng)前系統(tǒng)孝經(jīng)對統(tǒng)資源整體需求更情況。如果載變高,可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了。所以不能說列子著載變高,就覺得是 CPU 資源不夠用了。3.內(nèi)核是如何暴露負(fù)載數(shù)據(jù)給應(yīng)朱厭層的?內(nèi)核義了一個偽文件 /proc/ loadavg,每當(dāng)用戶打開這個窫窳件的時候,內(nèi)核中的 loadavg_proc_show 函數(shù)就會被調(diào)用到,該函禺強(qiáng)中訪問 avenrun 全局?jǐn)?shù)組變量,并將平均負(fù)載整數(shù)轉(zhuǎn)化為小數(shù),然后打槐山出?

      <code id='cb1d7'></code><style id='a77f7'></style>
    • <acronym id='2c7d3'></acronym>
      <center id='77d7b'><center id='2542f'><tfoot id='3ea25'></tfoot></center><abbr id='a3e7d'><dir id='68b16'><tfoot id='67cfd'></tfoot><noframes id='a69ea'>

    • <optgroup id='3c72b'><strike id='9ad8d'><sup id='ed1e4'></sup></strike><code id='c0539'></code></optgroup>
        1. <b id='93a4f'><label id='a2e66'><select id='20a9f'><dt id='015ac'><span id='95aed'></span></dt></select></label></b><u id='66f58'></u>
          <i id='4b1b9'><strike id='e72f3'><tt id='afc8a'><pre id='5d79a'></pre></tt></strike></i>