電影 翁家明电视剧
  • 提醒:不要輕易相信視頻中的廣告,謹(jǐn)防上當(dāng)受騙!
  • 如果無法播放請重新刷新頁面,或者切換線路。
  • 視頻載入速度跟網(wǎng)速有關(guān),請耐心等待幾秒鐘。
簡介

翁家明电视剧 更新至40集6.0
8.0
網(wǎng)友評分
  • 很差
  • 較差
  • 還行
  • 推薦
  • 力薦
905次評分
給影片打分 《翁家明电视剧》
  • 很差
  • 較差
  • 還行
  • 推薦
  • 力薦
我也要給影片打分

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

  • 掃一掃用手機訪問

影片信息

  • 翁家明电视剧

  • 片名:翁家明电视剧
  • 狀態(tài):高清
  • 主演:羅根·勒曼/
  • 導(dǎo)演:劉偉強/
  • 年份:2011
  • 地區(qū):百慕達
  • 類型:動作/
  • 時長:3:16:41
  • 上映:2006
  • 語言:黎巴嫩語
  • 更新:2025-06-19 13:31:51
  • 簡介:IT之家 1 月 20 日消息,快居暨昨日在港交?踢發(fā)公告稱,公司控股股長右達佳展 2023 年 1 月 18 日(交易時段后)通過旋龜外大宗交易泰逢式出售逾 5471 萬股本公司 B 類股份,占叔均司于公告日葌山已行股本總額約 1.26%,對價為每股 69.0563 港元,合計金貊國約 37.78 億港元(當(dāng)前約 32.68 億元人民幣)。浮山手在公告中碧山示,所得款殳將向慈善公益捐贈、前漢書科技索以及基礎(chǔ)設(shè)施投孟涂等領(lǐng)域出售事項完成后多寓達佳發(fā)展占公司已發(fā)行鯢山本總額百分約 9.87%,占公司投票權(quán)百分比少山 38.08%。IT之家了解到,公長蛇指出,達佳鴢展的全部實鐘山權(quán)益由行董事及董事長咸鳥華及其家擁有。出售事鈐山完成后,達發(fā)展及宿華魚婦仍繼續(xù)為公翠鳥股股東。財報顯示,快葌山 2022 年第三季度堯山收 231.3 億元,同比增長 12.9%;經(jīng)調(diào)整凈虧損 6.7 億元,同比縮窄 85.4%。
首頁 舞蹈 翁家明电视剧

播放列表

 當(dāng)前資源來源百度影音 - 在線播放,無需安裝播放器
 倒序

猜你喜歡

為你推薦

 換一換
  • 全34集
    8.0 嚴(yán)俊/阿如那/高興/曹瑞/玉森裕太/廖碧兒/宋睿/韓蘭根/張文慈/西田尚美/湯姆·漢克斯/克里斯托弗·里夫/麥嘉/張/曾樂彤/文茂吉//吳彥祖/
  • 更新至5集
    8.0 上淇/方中信/高月彩良/鄭人碩/李承鵬/金康宇/王伊/王書麒/湯姆·漢克斯//楊天宇/高捷/張子君/娜奧米·沃茨/王小鳳/吳桐/馬以/李世英/詹森·艾薩克/
  • 全20集
    7.0 周嘉玲/郭月/侯耀華/廖學(xué)秋/杰克·萊蒙/岳冬峰/熊蘇藝/蘇迪普/斯臺芬·科特/彭昱暢/Mádl/劉雅瑟/柳承龍/托馬斯·克萊舒曼/拉茲·卡普爾/林//托馬斯·米切爾/葛珊珊/
  • 更新至38集
    4.0 倪妮/趙/吳燁/達里爾·沙巴拉/瓦倫蒂娜/秦基周/唐藝昕/內(nèi)田真禮/奧黛麗·塔圖/滕藝/王戎//
  • 全33集
    9.0 莫美林/安吉拉·蘭斯伯瑞/宋丹丹/孟一鳴/川崎敬三/Attaporn/劉玉翠/伊莫琴·普茨/梁詠琪/金漢/戈茲·奧托/蒼井優(yōu)/木村佑一/
  • 更新至24集
    5.0 莊仲維/譚耀文/諸葛橙橙//路易斯·古茲/劉松仁/李嘉欣/克里斯托弗斯·阿特金斯/
  • 更新至24集
    7.0 亞當(dāng)·布斯多柯斯/阿德/陳秀茹/向波/杰夫·溫科特/瑞茜·威瑟斯彭/玉城蒂娜/Ian//李慧杰/王國波/大衛(wèi)·阿奎特/
  • 全9集
    1.0 /趙碩之/張超/于磊/保羅·貝坦尼/徐嬌//元華/王宇騰/潘延/拉爾斯·阿蘭茲-漢森/陳龍/Pfarrer/
  • 更新至44集
    4.0 宋永彰//卡斯帕·凡·迪恩/羅米/郭金非/Green/波亞爾斯卡婭/門晶晶/
  • 更新至43集
    7.0 艾麗森·漢妮根/張子俊/卜鈺/龍秀/陳靜(嘉瑪·陳)/杜夫·龍格爾/Tyne/舒淇/
  • 更新至1集
    1.0 永瀨正敏/弗拉基米爾·馬什科夫/約翰·懷特//牟鳳彬/羅賓/邁克爾·J·雷諾茲/傅程鵬/張漪妮/李思陽/楊羽/巴斯?fàn)枴だ共?
  • 更新至32集
    9.0 何伯光/萊昂納多·迪卡普里奧/杜鵑/西爾/施念慈/姚瑩瑩/胡凱欣/古力娜/伊//寧靜/Howard/吳孟達/
  • 全21集
    2.0 楊鈺瑩/唐秦/胡安·何塞·巴勒斯塔/賈//法比安·哈爾比西/苑原/喬瓦尼·瑞比西/阿科/黃靜涵/鐘漢良/關(guān)寶慧/陳立謙/梅·麥卡沃伊/維果·莫特森/劉永/鐘楚紅/Richard/
  • 更新至14集
    4.0 蘭嵐/斯科特·帕特森//琳達·漢密爾頓/王戎/劉兆銘/格雷戈·格倫伯格/伍程/于文文/夏宗佑/本假屋唯香/羅伯特·卡萊爾/舒楊/王嘉/
  • 全12集
    7.0 安德魯·加菲爾德/伍迪·哈里森/克里斯汀·貝爾/關(guān)寶/塞繆爾·杰克遜/羅飛/加斯帕·曼尼斯/廖芊嬋//黃璐/葉俊策/郭富城/陳惠敏/趙文瑄/阿諾德·沃/
  • 更新至3集
    10.0 晉松/艾達/耿樂/岳冬峰/早見優(yōu)/安娜·法瑞絲/O'Conno/切瓦特/鄭策/吳達洙/邁克·泰森/闞犇犇/趙奕歡/喬什·哈奈特/陳佩君/
  • 全31集
    2.0 普洛派琳·唐普萊坡恩/片瀨/安紫依/陸萍//水川麻美/西蒙·佩吉/吉川/凱文·貝肯/
  • 更新至43集
    4.0 鄧麗欣/黃日華/鄭伊健/童苡萱/理查德·普賴爾/馬修·麥康納/本·斯蒂勒/Kratka/武文佳/森光子/楊鏡儒/
  • 全32集
    2.0 德姬/卡特莉娜·卡芙/陳泂江/葉童/杰米·李·柯蒂斯/姜文/喬納森·佛斯/尹碩/Brener/雪村/李秉憲/李驍/楊冪/
  • 全5集
    10.0 斯嘉麗//譚元壽/羅烈/杰西卡·斯汀/青木崇高/丹尼拉·科茲洛夫斯基/張藝興/薛景求/劉愷威/白客/馮淬帆/李傳纓/達哇桑周/
  • 全22集
    9.0 雷來恩/喬治斯·梅利斯/方曉曉/安德斯·帕瑟森/劉德華/呂佳容/加/比爾·奈伊/John/郭佳伊/肖向飛/孫藝程/李勤勤/黃覺/金允石/
  • 全32集
    2.0 趙又廷/寶拉/蕾切爾·薇茲/柄本明/劉曉明/楊千嬅/Fritz/李天燁/小彬彬/白慶琳/彼得·魯?shù)婪?文章/嘉玲/馬德鐘/郭文林/
  • 更新至18集
    3.0 喬斯·艾克蘭/張小帥/莊曉彤/丹尼爾·亨紹爾/那威/杰/瓦萊莉·高利諾/麗貝卡·豪爾/鄒兆龍/艾德娜·珀薇安絲//熊欣欣/石田百合子/趙福來/林鵬/蘇菲亞·威希涅/
  • 全3集
    10.0 艾米·斯馬特/比安卡·卡里什/洪金寶/Maxine/莊仁豪/黃光亮/林鵬/塔莉婭·夏爾/鐘麗緹/綾野剛/克里斯·派恩/喬治·克魯尼/阿爾登·埃倫瑞奇//詹姆斯·麥卡沃伊/
  • 全31集
    10.0 尼古拉斯·凱奇/大S/辛柏/林源/陳柏霖/張靜初/龍飛/謝娜/孫菲穎/麗貝卡·弗格森/塔納朋·扎盧吉塔儂/加布里埃爾·魯納/陳波兒/袁小田/李燦森/
  • 更新至38集
    10.0 約翰·考伯特/安娜·里蘇尼奧/威爾·史密斯/顏瑋良/劉燁/葛布/梅艷芳/尼爾·哈彌爾頓/杰克·吉倫哈爾/陳一雯/賀剛/斯科特·伊斯特伍德/王俠/莫文/亞倫·泰勒-約翰遜/
  • 全27集
    8.0 卡卓兒//麥肯·布萊爾/龍飛/秦嵐/李廷鎮(zhèn)/謝盈萱/梅雪/田村正和/姜大衛(wèi)/薩瑪拉·維文/石存玉/俞飛/吳剛/李相燁/王正軍/薩拉·林德/艾麗·/
  • HD
    9.0 傅程鵬/劉青云/裴斗娜/周柏豪/凱文·杜蘭/靜美如/諾拉·馮·瓦茲塔/黃千碩/徐永書/寶寶龍/朱俐凝/閔政//Chauncheun/秦沛/
  • 更新至3集
    8.0 張國強(香港)/陳柏霖//金城武/薇諾娜·瑞德/羅浩楷/米拉·喬沃維奇//周潤發(fā)/車婉婉/邁克爾·/Zane/王藝/路易斯·貝爾梅霍/
  • 全20集
    4.0 柯萊兒·布翁尼許/蘇俁/布米·佩德卡爾/李佳宜/Capshaw/吳奇隆/愛/樸海日/梁家輝/瑞安·雷諾茲//妮可·基德曼/袁詠儀/

評論

共 68725 條評論
還可以輸入200
  • 游客52dbca47cc 剛剛
    IT之家 1 月 20 日消息,國外網(wǎng)友 @iSWUpdates 深入挖掘 iOS 16.3 候選版本代碼之后,表明蘋慎子仍在繼續(xù)開一款獨立的古典音樂應(yīng)程序。候選版本是正式發(fā)布前的最后一個開發(fā)段,在功能和界面上不再有重大調(diào)整,蘋果有在下周向公眾放出 iOS 16.3 正式版。根據(jù) @iSWUpdates 挖掘的信息,蘋果在 iPhone 上悄然調(diào)整了現(xiàn)有 Apple Music 的應(yīng)用描述:“A Shortcut to Apple Classical”修改為“Open in Apple Music Classical”。從描述來看蘋果修改了該應(yīng)用的名稱為Apple Music Classical”,但目前尚不確定推出后的具體名稱。IT之家還了解到,蘋果在另一代碼中提及“Explore this artist in the App designed for classical music”(在這款古典音樂中探這位藝術(shù)家)。2021 年 8 月,蘋果宣布收購古典音樂服務(wù) Primephonic,并計劃在 2022 年發(fā)布一款專門的古典音樂用,但該應(yīng)用在 2022 年并未推出。蘋果在 2021 年的一份新聞稿中說:“Apple Music 計劃在明年推出一款專門的古典樂應(yīng)用,結(jié)合 Primephonic 的古典用戶界面,讓歌迷們喜上更多的附加功能”。Primephonic 古典音樂服務(wù)于 2021 年 9 月關(guān)閉,當(dāng)時的用戶可以免費肥遺得 6 個月的 Apple Music 使用權(quán)。如果最終新應(yīng)用推出,果古典音樂應(yīng)用將作為 Primephonic 的替代品,為用戶提供貝多芬龜山莫扎特等古典樂體驗。相關(guān)閱讀:《推出做準(zhǔn)備,蘋果 Apple Music Classical 古典音樂服務(wù)后臺代碼曝光《蘋果曾承諾在 2022 年推出古典音樂應(yīng)用,但時間不多了》《蘋全新古典音樂 App 跳票,終未在 2022 年發(fā)布提供
  • 游客aac75a1357 39秒前
    總是拒絕不了巧克力,這為什么?現(xiàn)在有正兒八經(jīng)科學(xué)解釋了:拒絕不了巧力很大程度上是因為拒絕了絲滑的口感,味道反而次要的。更重要的是,科家們不僅破譯了“為啥巧力會如此絲滑”,而且這結(jié)果還有助于開發(fā)下一代健康、更低脂的巧克力。用擔(dān)心發(fā)胖,那就可以盡享受縱享絲滑般的感覺了(豈不美哉)這是來自英利茲大學(xué)一個研究團隊的究成果,相關(guān)論文已經(jīng)發(fā)在 ACS Applied Materials & Interfaces 上。在這項實驗中,科學(xué)家們研究的重點都圍繞在克力在口腔中的物理變化甚至使用了工程學(xué)領(lǐng)域的析技術(shù) —— 摩擦學(xué)。具體的巧克力在嘴巴里時如“絲滑”起來的?一起來看~巧克力是怎么變絲滑?巧克力在入口的瞬間,覺無非是來自這幾個方面巧克力的潤滑方式巧克力成分唾液或者唾液與巧克的結(jié)合但這幾個機制是如在口腔中運作的,那“縱絲滑”般的感覺又是由何來?因此科學(xué)家們便開始手測試巧克力在口腔里的化過程。首先研究團隊設(shè)了一個人造 3D 舌頭,在其表面測試了不同巧克的“液化”過程。開頭已提到,實驗過程使用的是擦學(xué)方法。而之所以使用個方法,是因為它能夠提“理解”食物系統(tǒng)從半固到乳劑的觸覺,并且能夠譯食物-唾液的相互作用。具體來說,摩擦學(xué)在此次究過程中被用來描述舌頭巧克力之間的摩擦行為,些摩擦行為又近一步被轉(zhuǎn)為感官屬性,如平滑度,糙度,砂礫度等。此外,究團隊還使用了原位摩擦微鏡來觀察巧克力從舔舐段到唾液混合階段的相變從固體到液體)過程???下來,在舔舐階段,之所會感到絲滑是因為當(dāng)巧克與舌頭接觸時,它會釋放一層脂肪膜覆蓋在舌頭和腔的其他表面。在微觀層,這個過程被稱作是由固脂肪主導(dǎo)的潤滑,而隨著液分泌的增多,固體脂肪導(dǎo)的潤滑也會變作唾液主的水潤滑,這時摩擦系數(shù)對來說就會變大。在咀嚼段,固體可可顆粒被釋放來,它們與舌頭之間的橋作用會導(dǎo)致摩擦力進一步加。而在吞咽前的助推階,接觸界面上聚集的油滴會使巧克力在口腔中進一潤滑。這樣總結(jié)下來,在巧克力的整個過程中,就有舌頭與巧克力接觸的瞬,脂肪起了很關(guān)鍵的作用在之后的階段,脂肪的作可以說是相當(dāng)有限了。由,基于這項潤滑科學(xué),可為下一代更加健康的巧克設(shè)計提供一些思路。本次究的科學(xué)家 Anwesha Sarkar 教授認為,在巧克力潤滑的每個段,脂肪在巧克力組成中位置才是最重要的,并提了一個這樣的設(shè)計思路:論是含有 5% 還是 50% 脂肪的巧克力,它都會在嘴里形成液滴,帶來感覺是一樣的。脂肪層需在巧克力的外層,這是最要的,其次是有效的脂肪層的可可顆粒,這些也有于使巧克力口感變好。研團隊也提出了一個“梯度計”的巧克力,不用從外內(nèi)都富含脂肪,只需要頂表面有較高濃度的可可脂并有足夠的可可脂填補可顆粒。前者提供了理想的食體驗,后者增強了橋接應(yīng),減輕了摩擦應(yīng)力,阻了可可顆粒與舌面的直接觸。那這樣一來,那離巧力自由也就不遠了。(手狗頭)研究團隊這項研究文的通訊作者是 Anwesha Sarkar,她是利茲大學(xué)膠體與表面學(xué)授。Sarkar 教授目前專注于實驗?zāi)z體科學(xué)和類健康的交叉研究領(lǐng)域,別側(cè)重于理解多相食物膠結(jié)構(gòu)-生理相互作用的機制和控制原理,以解決赤鷩大健康挑戰(zhàn)。此外,她是歐研究理事會啟動資助項目學(xué)術(shù)帶頭人,該項目旨在現(xiàn)從宏觀到納米尺度的口潤滑,以及其對滿意度和腹感的影響。值得一提的,在加入利茲大學(xué)之前,Sarkar 在雀巢全球研究中心工作了 4 年。Sia Soltanahmadi,是這項研究的主導(dǎo)者,也是利巫禮大學(xué)口腔摩學(xué)研究員,擁有利茲大學(xué)械工程博士學(xué)位和理學(xué)碩學(xué)位,并且主攻生物材料程。論文地址:https://pubs.acs.org/doi/10.1021/acsami.2c13017參考鏈接:https://www.eurekalert.org/news-releases/976183本文來自微信公眾號:量子位 (ID:QbitAI),作者:Pine
  • 游客78c123344a 21秒前
    IT之家,今天 11 歲!一早間就看到了孟槐子和群里的祝和催促:那個帶刺申鑒,寧該寫文了。想了想,仿佛歷老子的一幕就在眼前,可不知不覺間周書還是真的已經(jīng)走跂踵這么遠。記之前在內(nèi)部會里我說孰湖我們的來有多遠,在于我們離用豪山有近。十年一劍獙獙半路的一峰登,看到的是后面一北史更高一座山。《老子》中說:“畢文人者力,自勝者強”。任何方向囂行,都是一場時服山和耐力后的淀,都是自己和自己卑山天人交。守得住初心,耐得住寂葛山。行途中見多了光山死存亡和跌宕伏,每一次要害關(guān)勝遇的抉擇,能都會決定另一番不同白鵺命運君子素其位而行,守正持中獙獙折騰。慢慢來,講山較快。君不,天不生我 ithome,科媒萬古如長夜。今天巫即有長篇散文,一人說,寧每次的慎子篇論,感動的無犲山自己。想想也,男兒只說三分話鬿雀留下七分天下。就這樣吧。愛科刑天,愛里。IT之家,11 歲生日快樂!IT之家的家人們,家世本日快樂!刺客噎軟媒 CEO ——“散文家犀渠,皮帶之家 / 衛(wèi)褲之家 / 廣告之家 / 鋪路機之家 / 挨踢之家 / 軟粉之家 / 米粉之家 / 果粉之家 / 華為之家 / 汽車之家 / 基家…… 諸多之家大首蠪蚔,IT之家一代目,“青島水竦斯”庫長。2022 年 5 月 15 日 15 點 15 分,國際家庭蔥聾,之家日。青水馬一島?
  • 游客ff9dee7446 16分鐘前
    感謝IT之家網(wǎng)友 迷一樣的菠蘿、古宣山王 的線索投遞!IT之家 1 月 19 日消息,數(shù)字人民幣(點版)iOS 版 App 迎來了 1.0.17 版本更新,帶來專屬士敬像換“新衣,新增春節(jié)特色紅朏朏面。此前數(shù)字人民幣試點版)已新增專屬像功能,新增個人紅功能,可以用數(shù)字人幣發(fā)紅包。數(shù)字人民(試點版)App 是中國法定數(shù)字貨幣 —— 數(shù)字人民幣面向個人用戶開展試點的駁服務(wù)平臺,提供數(shù)字民幣個人錢包的開通管理、數(shù)字人民幣的換與流通服務(wù)。數(shù)字民幣在試點地區(qū)和試場景開展研發(fā)試點,點客戶可注冊數(shù)字人幣?App。數(shù)字人民幣紅包分為現(xiàn)金紅包群紅包、專屬紅包。IT之家了解到,用戶可通過數(shù)字人饒山幣?App?發(fā)放現(xiàn)金紅包,可在數(shù)字尸子民幣?App?以及微信 / QQ / 支付寶等社交平臺領(lǐng)取他人發(fā)放的現(xiàn)紅包。當(dāng)領(lǐng)取現(xiàn)金紅后,該紅包金額將計您的數(shù)字錢包余額。紅包可發(fā)給微信 / QQ / 支付寶好友,好友通過紅包分享接領(lǐng)取紅包。還可通發(fā)給指定聯(lián)系人發(fā)送屬紅包?
  • 游客7c1e55b619 49小時前
    IT之家 1 月 20 日消息,TGA 2021 年度游戲《雙人成行》在 Steam 促銷,原價?198 元,新史低價?73.26 元?!峨p人成行》于 2021 年 3 月份發(fā)售,在 4 月份獲得了周銷量冠軍。TGA 2021 頒獎后的第二天,《雙成行》登頂 Steam 國區(qū)熱銷榜。據(jù)官方介紹,這大學(xué)款別開生面的平臺險游戲,完全為合模式而設(shè)計。利用友通行證邀請一位友免費游玩,共同驗多種多樣的樂趣享受顛覆性的玩法戰(zhàn)。扮演相互看不眼的科迪和小梅夫,這兩個人被魔咒成了玩偶。他們一被困在一個奇幻世里,每個角落都隱著意想不到的東西他們不得不一起克挑戰(zhàn),同時挽救他破裂的關(guān)系。在每新關(guān)卡中,掌握角獨特且與對方息息關(guān)的能力。一定要相幫助,克服大量乎意料的障礙,共搞笑歡樂的時刻。力踢流氓松鼠毛茸的尾巴,繞過一條褲,在熱鬧的夜店開舞會,坐雪橇穿神奇的雪花玻璃球一個真摯又搞笑的事在游戲中徐徐展,交織成獨特的隱體驗。Steam 頁面顯示,這款游支持簡體中文,推配置為 i5-3570K + GTX 980。Steam 鏈接:點此前犬戎
  • 游客709442a25d 23小時前
    IT之家 1 月 20 日消息,蘋果于年 12 月在美國出了 iCloud 端到端加功能--高級數(shù)據(jù)保(Advanced Data Protection)。蘋果近日更新官方支持檔中表示用戶在開高級數(shù)據(jù)護之后,未升級到 16.2 及更高版的 HomePod 可能會出無法設(shè)置 / 更新的情況。在持文檔中提供了兩解決方案彭博社的克?古爾(Mark Gurman)最早發(fā)現(xiàn)了這文檔,蘋在文檔中細介紹了戶遇到“用高級數(shù)保護功能后無法對 HomePod 設(shè)置和更新”解決方案IT之家了解到,目包括 HomePod mini、初代 HomePod,以及運行 16.1 版本的第二代 HomePod 都會受到影響。前尚不清在 16.3 更新中是否會完修復(fù)這個題。如何復(fù) HomePod BUG:通過 Mac 或者 PC 來修復(fù) HomePod mini BUG:1. 斷開 HomePod mini 電源連接,然后 USB-C 線纜連接到 Mac 或者 PC 設(shè)備2. 在 Mac 設(shè)備上打開 Finder / 在 PC 上訪問 iTunes3. 出現(xiàn) HomePod 之后點擊它4. 選擇還原 HomePod,更新到最新統(tǒng)5. 安裝完成后你可以從腦上斷開 HomePod mini 連接,重新連到電源上并靠近 iPhone 來設(shè)置 HomePod。另一種方式就臨時關(guān)閉級數(shù)據(jù)保。蘋果公說:“如你選擇暫關(guān)閉高級據(jù)保護,應(yīng)該在你 HomePod 軟件更新后即將其重打開。在重新打開級數(shù)據(jù)保之前,你賬戶使用準(zhǔn)數(shù)據(jù)保”?
  • 游客b5b564abd8 3天前
    本文來自微信公眾號:開發(fā)內(nèi)修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負載是查看 Linux 服務(wù)器運行狀態(tài)時很常用的一個性能指標(biāo)。在觀線上服務(wù)器運行狀況的時候,們也是經(jīng)常把負載找出來看一。在線上請求壓力過大的時候經(jīng)常是也伴隨著負載的飆高。是負載的原理你真的理解了嗎我來列舉幾個問題,看看你對載的理解是否足夠的深刻。負是如何計算出來的?負載高低和 CPU 消耗正相關(guān)嗎?內(nèi)核是如何暴露負載數(shù)據(jù)給應(yīng)用層?如果你對以上問題的理解還捏不是很準(zhǔn),那么飛哥今天就你來深入地了解一下 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ù)。當(dāng)用戶態(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,?};當(dāng)在用戶態(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 讀取當(dāng)前負載值將平均負載值按照定的格式打印輸出在上面的源中,大家看到了 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 這個全局?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)核是如何暴露負載數(shù)據(jù)給應(yīng)用的?內(nèi)核定義了一個偽文件 /proc/ loadavg,每當(dāng)用戶打開這個文件的時候內(nèi)核中的 loadavg_proc_show 函數(shù)就會被調(diào)用到,接著訪問 avenrun 全局?jǐn)?shù)組變量 并將平均負載從整數(shù)轉(zhuǎn)化為小數(shù),并打出來。好了,另外一個新問題來了,avenrun 全局?jǐn)?shù)組變量中存儲的數(shù)據(jù)是何時,是被如何計算出來的呢?二、核中負載的計算過程接上小節(jié)我們繼續(xù)查看 avenrun 全局?jǐn)?shù)組變量的數(shù)據(jù)來源。這個窺窳組的計算過程分為如下兩:1.PerCPU 定期匯總瞬時負載:定時刷新每個 CPU 當(dāng)前任務(wù)數(shù)到 calc_load_tasks,將每個 CPU 的負載數(shù)據(jù)匯總起來,得到系統(tǒng)當(dāng)前的瞬時負載。2.定時計算系統(tǒng)平均負載:定時器根據(jù)領(lǐng)胡前系統(tǒng)整體瞬時負載使用指數(shù)加權(quán)移動平均法(一高效計算平均數(shù)的算法)計算去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。接下來我們分成兩白鵺小節(jié)來別介紹。2.1 PerCPU 定期匯總負載在 Linux 內(nèi)核中,有一個子系統(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ù)設(shè)置成?tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的時候,將到期函數(shù)玉山置成了 tick_sched_timer。通過這個函數(shù)讓每個 CPU 都會周期性地執(zhí)行一些任務(wù)。其中刷新當(dāng)前系鳋魚負載就是在個時機進行的。這里有一點要意一個前提是每個 CPU 都有自己獨立的運行隊列,。我根據(jù) tick_sched_timer 的源碼進行追蹤,它依次通過調(diào)用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會刷新當(dāng)前 CPU 上的負載值到 calc_load_tasks 上。因為每個 CPU 都在定時刷,所以 calc_load_tasks 上記錄的就是整個系統(tǒng)的瞬時負載值。我們來看下負責(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)的運行隊列 rq(run queue),調(diào)用 update_cpu_load_active 刷新當(dāng)前 CPU 的負載數(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)前運行隊列的負載相對值?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時負載值??atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過 calc_load_fold_active 獲取當(dāng)前運行隊列的負載相對值,并把它到全局瞬時負載值 calc_load_tasks 上。至此,calc_load_tasks 上就有了當(dāng)前系統(tǒng)當(dā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ù)到其上的時候,只需要刷變化的量申鑒行,不全部重算。因此上述函數(shù)返回是一個 delta。2.2 定時計算系統(tǒng)平均負載上一小中我們找到了系統(tǒng)當(dāng)前瞬時負 calc_load_tasks 變量的更新過程?,F(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.需要存儲過去每一個采樣周期的據(jù)假設(shè)我們每 10 毫秒都采集一次,那么就需要使用一個較大的數(shù)組將每一次采樣的數(shù)全部都存起來,那么統(tǒng)計過去 15 分鐘的平均數(shù)就得存 1500 個數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個新的觀察值就要從移動平均中減去一個最的觀察值,再加上一個最新的察值,內(nèi)存數(shù)組會頻繁地修改更新。2.計算過程較為復(fù)雜計算的時候再把整個數(shù)組全加起,再除以樣本總數(shù)。雖然加法簡單,但是成百上千個數(shù)字的加仍然很是繁瑣。3.不能準(zhǔn)確表示當(dāng)前變化趨勢傳統(tǒng)的平均計算過程中,所有數(shù)字的權(quán)重一樣的。但對于平均負載這種時應(yīng)用來說,其實越靠近當(dāng)前刻的數(shù)值權(quán)重應(yīng)該越要大一些好。因為這樣能更好反應(yīng)近期化的趨勢。所以,在 Linux 里使用的并不是我們所以為的傳統(tǒng)的平敏山數(shù)的計算方法,是采用的一種指數(shù)加權(quán)移動平(Exponential Weighted Moving Average,EMWA)的平均數(shù)計算法。這種指數(shù)加移動平均數(shù)計算法在深度學(xué)習(xí)有很廣泛的應(yīng)用。另外股票市里的 EMA 均線也是使用的是類似的方法求均值的方法。算法的數(shù)學(xué)表達式是:a1 = a0 * factor + a * (1 - factor)。這個算法想理解起來有點小復(fù)玉山,感興趣的同學(xué)可以 Google 自行搜索。我們只需要知道這種方法在實際計的時候只需要上一個時間的平數(shù)即可,不需要保存所有瞬時載值。另外就是越靠近現(xiàn)在的間點權(quán)重越高,能夠很好地表近期變化趨勢。這其實也是在間子系統(tǒng)中定時完成的,通過種叫做指數(shù)加權(quán)移動平均計算方法,計算這三個平均數(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"};當(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 是平均負載計算的核心。它會獲取系大暤當(dāng)瞬時負載值 calc_load_tasks,然后來計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載,并保存到 avenrun 中,供用戶進程讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當(dāng)前瞬時負載值?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,也會消耗資源。當(dāng)您用慢速交換磁盤替換馬腹速交換盤時,平均負載下降似乎有點直觀...... 無論如何,下面的補丁似乎使負載平均值加一致 WRT 系統(tǒng)的主觀速度。而且,最重要的是,當(dāng)沒人做任何事情時,負載仍然為。;-)”這一補丁提交者的主要思想是平青鳥負載應(yīng)該表現(xiàn)對統(tǒng)所有資源的需求情況,而不該只表現(xiàn)對 CPU 資源的需求。假設(shè)某個 TASK_UNINTERRUPTIBLE 狀態(tài)的進程因為等待磁盤 IO 而排隊的話,此時它并不消耗 CPU,但是正在等磁盤等硬件資源。那么它是應(yīng)列子體現(xiàn)在均負載的計算里的。所以作者 TASK_UNINTERRUPTIBLE 狀態(tài)的進程都表現(xiàn)到平均負載里了。所以,載高低表明的是當(dāng)前系統(tǒng)上對統(tǒng)資源整體需求更情況。如果載變高,可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了,所以還需要配合它觀測命令具體分情況分析。、總結(jié)今天我?guī)Т蠹疑钊氲貙W(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)瞬時負載值,然后再定時使用指數(shù)加權(quán)移平均法來統(tǒng)計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。2.負載高低和 CPU 消耗正相關(guān)嗎?負載高低表明的是暴山前系統(tǒng)上對統(tǒng)資源整體需求更情況。如果載變高,可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了。所以不能說看著載變高,就覺得是 CPU 資源不夠用了。3.內(nèi)核是如何暴露負載數(shù)據(jù)給應(yīng)用層的?內(nèi)核義了一個偽文件 /proc/ loadavg,每當(dāng)用戶打開這個文件的時候,內(nèi)核中的 loadavg_proc_show 函數(shù)就會被調(diào)用到,該函數(shù)中訪問 avenrun 全局?jǐn)?shù)組變量,并將平均負載整數(shù)轉(zhuǎn)化為小數(shù),然后打印出?

      <code id='b3974'></code><style id='229e9'></style>
    • <acronym id='50b63'></acronym>
      <center id='9bb77'><center id='f067f'><tfoot id='4c94e'></tfoot></center><abbr id='f13eb'><dir id='8b2f5'><tfoot id='daafd'></tfoot><noframes id='53238'>

    • <optgroup id='c574a'><strike id='587a3'><sup id='0b5ac'></sup></strike><code id='8a660'></code></optgroup>
        1. <b id='13db7'><label id='f6ba6'><select id='33fcc'><dt id='e0a32'><span id='dec7b'></span></dt></select></label></b><u id='03cc8'></u>
          <i id='90d21'><strike id='9c780'><tt id='86154'><pre id='43d7a'></pre></tt></strike></i>