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

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

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

Posted on 2010-11-10 09:31 Kevin_Zhang 閱讀(1703) 評論(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黄| 亚洲黄色天堂| 亚洲已满18点击进入久久| 久久成人精品| 国产欧美日韩在线观看| 亚洲欧美自拍偷拍| 欧美精品久久一区二区| 久久av一区二区三区漫画| 国产精品都在这里| 久久夜色精品国产欧美乱| 亚洲麻豆一区| 久久午夜精品一区二区| 亚洲麻豆av| 国产日韩av高清| 欧美精品自拍| 欧美一区二区在线播放| 亚洲调教视频在线观看| 美女主播一区| 亚洲第一黄色| 欧美一区二区三区免费视频| 亚洲私人影吧| 麻豆成人91精品二区三区| 欧美激情按摩在线| 欧美福利视频| 欧美电影在线| 日韩亚洲欧美一区| 亚洲欧洲精品一区| 欧美大片在线观看| 一区二区三区免费观看| 欧美激情一区二区三区在线视频观看| 亚洲午夜av| 久久亚洲一区二区| 欧美电影免费观看大全| 嫩草国产精品入口| 欧美激情一区二区三区在线视频观看| 久久精品女人的天堂av| 久久久久综合一区二区三区| 久久视频精品在线| 免费看的黄色欧美网站| 欧美xart系列高清| 欧美午夜激情在线| 狠狠色伊人亚洲综合成人| 一区二区三区精品视频| 久久久综合精品| 亚洲精品国产精品久久清纯直播| 亚洲视频在线一区观看| 久久人91精品久久久久久不卡 | 亚洲一区自拍| 久久久久久黄| 亚洲蜜桃精久久久久久久| 亚洲欧美制服中文字幕| 老司机一区二区三区| 国产精品福利久久久| 亚洲欧洲日本在线| 老鸭窝亚洲一区二区三区| 亚洲小说春色综合另类电影| 美女精品国产| 一区二区在线不卡| 久久精品女人的天堂av| 一二美女精品欧洲| 欧美精品久久久久久| 在线电影国产精品| 欧美国产日韩精品| 欧美国产激情| 99在线精品观看| 日韩一区二区电影网| 欧美图区在线视频| 午夜精品久久久久久久白皮肤| 一本色道久久综合亚洲精品小说| 久久精品日产第一区二区| 国产精品网站在线观看| 亚洲精品免费在线| 亚洲国产小视频| 欧美精品自拍偷拍动漫精品| 9色国产精品| 99在线热播精品免费99热| 国产精品久久久对白| 国模私拍视频一区| 欧美国产高清| 欧美精品日韩一本| 在线午夜精品自拍| 一区二区三区高清不卡| 国产精品久久久久久模特| 亚洲欧美精品在线观看| 羞羞色国产精品| 精品福利电影| 亚洲国内自拍| 欧美性一区二区| 久久成年人视频| 久久婷婷激情| 亚洲一卡久久| 蘑菇福利视频一区播放| 欧美在线999| 欧美精品色一区二区三区| 欧美综合激情网| 欧美午夜精品理论片a级按摩 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美日韩亚洲一区二| 午夜精品久久| 久久久美女艺术照精彩视频福利播放| 亚洲国产影院| 欧美在线视频免费| 亚洲女ⅴideoshd黑人| 欧美日本在线视频| 欧美福利网址| 亚洲成人原创| 久久色在线观看| 欧美成人中文字幕| 亚洲承认在线| 国产精品男女猛烈高潮激情| 最新日韩av| 一本色道久久88亚洲综合88| 欧美一区二区三区在| 篠田优中文在线播放第一区| 欧美精品乱人伦久久久久久| 久热精品在线| 国产亚洲欧洲一区高清在线观看| 99热在这里有精品免费| 91久久精品视频| 欧美日韩在线观看视频| 日韩视频在线播放| 亚洲精品一区二区三区不| 免费成人高清在线视频| 91久久精品一区二区三区| 亚洲三级免费观看| 欧美精品在线看| 在线亚洲+欧美+日本专区| 亚洲永久视频| 韩日欧美一区二区| 久久综合伊人| 一本色道久久精品| 久久精品一区四区| 伊人成综合网伊人222| 欧美成人精品福利| 亚洲人成在线观看一区二区| 亚洲在线视频| 国产精品欧美经典| 久久综合伊人| 午夜一级在线看亚洲| 欧美国产免费| 亚洲激情视频在线| 欧美日韩在线不卡| 久久久久国产一区二区三区| 9i看片成人免费高清| 久久精品国产综合精品| 亚洲精品综合| 国产亚洲精品高潮| 欧美激情视频一区二区三区免费 | 男人插女人欧美| 午夜激情一区| 亚洲欧美日韩精品久久亚洲区 | 亚洲成人直播| 国产欧美午夜| 欧美在线观看一区| 亚洲欧美在线视频观看| 一本大道久久a久久综合婷婷 | 国产在线精品自拍| 国产亚洲一级高清| 国产综合一区二区| 在线观看国产成人av片| 国产精品人成在线观看免费| 欧美日韩亚洲综合一区| 欧美日韩三区四区| 欧美电影免费观看高清完整版| 久久久精品国产99久久精品芒果| 午夜精品一区二区三区四区| 亚洲制服少妇| 欧美一级在线亚洲天堂| 午夜精品偷拍| 欧美高清视频在线播放| 国产精品久久久久国产精品日日| 国产欧美日韩专区发布| 亚洲国产精品t66y| 亚洲永久免费观看| 欧美第十八页| 性欧美暴力猛交69hd| 欧美精品播放| 在线免费观看成人网| 日韩亚洲国产欧美| 久久久久久夜| 亚洲免费人成在线视频观看| 欧美mv日韩mv亚洲| 国内一区二区在线视频观看| 在线视频中文亚洲| 亚洲日本aⅴ片在线观看香蕉| 欧美一级专区免费大片| 国产精品视频yy9299一区| av成人毛片| 亚洲欧洲美洲综合色网| 久久深夜福利| 精品福利免费观看| 久久久久久自在自线| 亚洲性夜色噜噜噜7777| 欧美精品一区二区三区高清aⅴ| 久久综合中文字幕| 老鸭窝91久久精品色噜噜导演| 欧美成人精品福利| 伊人久久大香线| 欧美1区2区3区| 欧美在线视频全部完|