青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

  C++博客 :: 首頁 :: 新隨筆 ::  ::  :: 管理

用/proc/stat計算cpu的占用率

Posted on 2010-11-10 09:31 Kevin_Zhang 閱讀(1714) 評論(0)  編輯 收藏 引用 所屬分類: Linux

Linux下,CPU利用率分為用戶態,系統態和空閑態,分別表示CPU處于用戶態執行的時間,系統內核執行的時間,和空閑系統進程執行的時間,三者之和就是CPU的總時間,當沒有用戶進程、系統進程等需要執行的時候,CPU就執行系統缺省的空閑進程。從平常的思維方式理解的話,CPU的利用率就是非空閑進程占用時間的比例,即CPU執行非空閑進程的時間 / CPU總的執行時間。

Linux系統中,CPU時間的分配信息保存在/proc/stat文件中,利用率的計算應該從這個文件中獲取數據。文件的頭幾行記錄了每個CPU的用戶態,系統態,空閑態等狀態下分配的時間片(單位是Jiffies),這些數據是從CPU加電到當前的累計值。常用的監控軟件就是利用/proc/stat里面的這些數據來計算CPU的利用率的。

不同版本的linux /proc/stat文件內容不一樣,以Linux 2.6來說,/proc/stat文件的內容如下:

 

cpu 2032004 102648 238344 167130733 758440 15159 17878 0

cpu0 1022597 63462 141826 83528451 366530 9362 15386 0

cpu1 1009407 39185 96518 83602282 391909 5796 2492 0

intr 303194010 212852371 3 0 0 11 0 0 2 1 1 0 0 3 0 11097365 0 72615114 6628960 0 179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

ctxt 236095529

btime 1195210746

processes 401389

procs_running 1

procs_blocked 0

 

第一行的數值表示的是CPU總的使用情況,所以我們只要用第一行的數字計算就可以了。下表解析第一行各數值的含義:

參數

解析(單位:jiffies

user (2032004)

從系統啟動開始累計到當前時刻,用戶態的CPU時間,不包含 nice值為負進程。

nice (102648)

從系統啟動開始累計到當前時刻,nice值為負的進程所占用的CPU時間

system (238344)

從系統啟動開始累計到當前時刻,核心時間

idle (167130733)

從系統啟動開始累計到當前時刻,除IO等待時間以外其它等待時間

iowait (758440)

從系統啟動開始累計到當前時刻,IO等待時間

irq (15159)

從系統啟動開始累計到當前時刻,硬中斷時間

softirq (17878)

從系統啟動開始累計到當前時刻,軟中斷時間

 

 

因為/proc/stat中的數值都是從系統啟動開始累計到當前時刻的積累值,所以需要在不同時間點t1t2取值進行比較運算,當兩個時間點的間隔較短時,就可以把這個計算結果看作是CPU的即時利用率。

 

CPU的即時利用率的計算公式:

CPUt1t2時間段總的使用時間 = ( user2+ nice2+ system2+ idle2+ iowait2+ irq2+ softirq2) - ( user1+ nice1+ system1+ idle1+ iowait1+ irq1+ softirq1)

CPUt1t2時間段空閑使用時間 = (idle2 - idle1)

CPUt1t2時間段即時利用率 =  1 - CPU空閑使用時間 / CPU總的使用時間

 

這些值是誰,什么時候記錄的呢?

每次timer的中斷就會記錄一次,記錄在struct cpu_usage_stat 里,實現在timer_tick ->update_process_times里。
那么它的精度就是HZ,如果HZ100,就意味著每S記錄100次。這個精度當然是不高的,而且容易出錯,下面是在Documentation/cpu-load.txt中的一個例子:
  time line between two timer interrupts
 |--------------------------------------|
 ^                                    ^
 |_ user appA begins working          |
                                      |_ user appA goes to sleep
結果這個A的動作沒有被記錄下來,這一S有可能被記錄到其他的頭上。如果你做的程序正好是那個其他,你就會抱怨說,這真是一陀屎呀。
那么有沒有高精度的記錄呢?
有,但是要自己寫,就算你用oprofile之類的,他的原理也是用timer_interrupt記錄的,你可以用其他的高精度timer,但是,頻繁的中斷會把系統弄死。所以要自己寫,假設有一個高精度的硬件counter,好像x86下的TimeStamp Counter
cpu_idle 里記錄idle的時間,在asm_do_IRQ里記錄處理irq的時間,在context_switch記錄進入了那個process,以及時間,在__do_softirq里記錄處理softirq的時間,把這些東西記錄在一塊全局數組里。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲高清不卡av| 麻豆国产精品va在线观看不卡| 欧美在现视频| 亚洲欧美日韩一区| 黄色成人精品网站| 免费在线视频一区| 欧美aⅴ一区二区三区视频| 在线观看不卡av| 亚洲第一中文字幕在线观看| 欧美精品18videos性欧美| 亚洲午夜国产成人av电影男同| av不卡在线观看| 国内精品久久国产| 亚洲国产va精品久久久不卡综合| 欧美精品一二三| 久久激情视频久久| 蜜桃av一区二区| 午夜精彩国产免费不卡不顿大片| 久久激情网站| 亚洲视频在线播放| 欧美一区二区视频观看视频| 91久久久在线| 亚洲午夜久久久久久久久电影院 | 国产精品免费网站| 久久久999精品免费| 欧美大片网址| 久久久国产亚洲精品| 欧美黄色aaaa| 久久乐国产精品| 国产精品国产自产拍高清av| 久久久久五月天| 国产精品久久久久久久久免费桃花 | 欧美一区二区三区在线观看视频| 久久久久久久久综合| 亚洲午夜久久久| 久久五月激情| 欧美在线|欧美| 欧美日韩视频专区在线播放| 蜜桃av噜噜一区二区三区| 欧美亚一区二区| 亚洲国产视频一区| 国产在线乱码一区二区三区| av不卡在线观看| 99精品热视频只有精品10| 久久se精品一区二区| 翔田千里一区二区| 欧美亚洲第一页| 亚洲精选在线观看| 亚洲精品国产无天堂网2021| 久久福利视频导航| 久久国产手机看片| 国产精品激情av在线播放| 亚洲人体1000| 一本色道久久99精品综合| 葵司免费一区二区三区四区五区| 久久福利精品| 国产日韩欧美二区| 亚洲一区二区在线观看视频| 亚洲欧美国产高清| 国产精品videossex久久发布| 亚洲精品一区二区三区蜜桃久| 亚洲国产精品传媒在线观看| 久久久久久久综合日本| 久久综合给合| 精品91久久久久| 久久精品青青大伊人av| 久久综合网hezyo| 好吊色欧美一区二区三区视频| 久久福利电影| 久久亚洲视频| 91久久久国产精品| 欧美精品情趣视频| 99精品热视频| 先锋影音国产精品| 韩国免费一区| 免费h精品视频在线播放| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲欧洲午夜| 欧美午夜精品久久久久久人妖| 亚洲一区二区三区高清不卡| 欧美中文字幕第一页| 精品av久久707| 欧美sm极限捆绑bd| 在线视频欧美一区| 久久精品夜色噜噜亚洲a∨ | 国产精品夫妻自拍| 亚洲小视频在线观看| 欧美一区综合| 亚洲高清视频在线| 欧美日本亚洲韩国国产| 亚洲亚洲精品三区日韩精品在线视频 | 在线观看一区二区视频| 免费日韩一区二区| 亚洲天堂av在线免费| 久久久久久日产精品| 亚洲乱码国产乱码精品精可以看| 欧美日韩一区二区在线| 久久福利资源站| 亚洲久久一区| 老司机免费视频一区二区| 日韩性生活视频| 韩国av一区二区| 欧美日韩亚洲高清一区二区| 欧美一区国产一区| 亚洲精品一区在线观看| 久久亚洲视频| 亚洲影院高清在线| 亚洲国产日韩一区| 国产精品视频网站| 欧美成人精品高清在线播放| 亚洲免费在线精品一区| 亚洲人成网站在线播| 久久精品人人爽| 亚洲视频在线观看视频| 亚洲国产另类精品专区| 国产麻豆精品久久一二三| 欧美精品激情在线观看| 久久精品国产一区二区三区| 日韩一级二级三级| 欧美激情一区二区三级高清视频| 欧美一区1区三区3区公司| 99精品视频一区二区三区| 在线不卡欧美| 国内精品久久久久影院 日本资源| 欧美日本成人| 米奇777超碰欧美日韩亚洲| 欧美一区影院| 欧美一区二区成人| 亚洲一区二区网站| 一二美女精品欧洲| 亚洲国产综合在线看不卡| 噜噜噜在线观看免费视频日韩| 性欧美超级视频| 亚洲视频二区| 亚洲午夜精品一区二区| 亚洲视频网站在线观看| 在线一区二区三区做爰视频网站| 亚洲欧洲在线看| 亚洲激情小视频| 亚洲国产精品一区二区尤物区| 一区在线播放| 亚洲福利视频三区| 亚洲国产精彩中文乱码av在线播放| 国内精品美女av在线播放| 国产一区二区三区久久悠悠色av| 国产欧美一区二区精品忘忧草| 国产伦精品一区二区三区高清版| 国产精品日韩精品欧美精品| 国产伦精品一区二区三区高清版 | 国产精品电影网站| 国产精品久久久久久户外露出| 国产精品乱人伦一区二区| 国产美女精品免费电影| 国内视频精品| 亚洲国产成人tv| 99视频一区| 亚洲欧美制服中文字幕| 久久er99精品| 欧美aⅴ一区二区三区视频| 免费一级欧美片在线观看| 亚洲国产精品专区久久| 一本色道久久综合精品竹菊| 99在线精品观看| 亚洲一区二区三区在线| 久久精品导航| 欧美韩日一区二区| 国产精品视频久久一区| 国产真实精品久久二三区| 亚洲国产91精品在线观看| 亚洲精品视频在线| 亚洲欧美另类国产| 久热精品在线| 亚洲免费观看高清完整版在线观看| 亚洲深夜激情| 久久精品视频一| 欧美日韩精品免费观看视频| 国产精品一区二区久久久久| 亚洲国产天堂网精品网站| 亚洲视频一二| 免费在线观看精品| 制服丝袜激情欧洲亚洲| 久久九九全国免费精品观看| 欧美日韩一区精品| 狠狠久久五月精品中文字幕| 一本色道婷婷久久欧美| 久久女同互慰一区二区三区| 亚洲美女在线观看| 久久综合色影院| 国产三级精品三级| 在线一区视频| 欧美激情aⅴ一区二区三区| 亚洲综合成人婷婷小说| 欧美激情综合在线| 在线精品在线| 欧美在线你懂的| 日韩午夜高潮| 欧美精品aa| 91久久久国产精品| 老司机免费视频一区二区| 亚洲一区在线观看视频 |