成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

進(jìn)程cpu使用率的計算

kid143 / 3450人閱讀

摘要:計算公式亦或亦或相當(dāng)于中的值的計算是內(nèi)核提供的該進(jìn)程在時間內(nèi)消耗的。分別是該進(jìn)程的子進(jìn)程在用戶態(tài)和內(nèi)核態(tài)消耗的。注意中的是一個絕對累計值,所以要取兩個時間點(diǎn),算中消耗的。內(nèi)核中,進(jìn)程線程消耗的時間,單位都是這個。

計算公式
(process jiffies) * 100.0f / ((float)Hertz * (float)et * cpuCoresCount)

亦或

(process jiffies) * 100.0f / (float)Hertz / (float)et / cpuCoresCount

亦或

100 * (process jiffies)/ (float)Hertz / (float)et  / cpuCoresCount

相當(dāng)于top -p pid 中 %CPU 的值

process jiffies的計算

process jiffies是內(nèi)核提供的該進(jìn)程在DeltaT時間內(nèi)消耗的jiffies。具體是/proc//stat文件的第14-17 token。14-17token分別是utime, stime, cutime, cstime。cutime/cstime分別是該進(jìn)程spawn的子進(jìn)程在用戶態(tài)和內(nèi)核態(tài)消耗的jiffies。

process jiffies = utime + stime + cutime + cstime

Jiffies 為Linux核心變數(shù)(unsigned long),它被用來記錄系統(tǒng)自開機(jī)以來,已經(jīng)過了多少tick。每發(fā)生一次timer interrupt,Jiffies變數(shù)會被加一。

注意stat中的jiffies是一個絕對累計值,所以要取兩個時間點(diǎn),算DeltaT中消耗的jiffies。

(process jiffies) = (current process jiffies) - (last process jiffies)

Hertz(tick per second)

什么是jiffies呢?其實(shí)就是Linux內(nèi)核定義的一個時間單位,值就是1/Hertz。Linux內(nèi)核中,進(jìn)程/線程消耗的時間,單位都是這個 jiffies。

Hertz就是CLK_TCK,可以根據(jù)getconf CLK_TCK獲取

LINUX系統(tǒng)時鐘頻率是一個常數(shù)HZ來決定的, 通常HZ=100,即100Hz,一個周期即為 1/100s = 10ms = 10^7 ns,那么他的精度度就是10ms(毫秒)。也就是說每10ms一次中斷。所以一般來說Linux的精確度是10毫秒。

et

這里是每次統(tǒng)計的間隔時間,單位為秒

(System.nanoTime() - lastNanoTime) * 1E-9

cpu核數(shù)

/usr/bin/nproc

或者

cat /proc/cpuinfo | grep processor | wc -l
doc

man-proc

Linux內(nèi)核中的jiffies及其作用介紹及jiffies等相關(guān)函數(shù)詳解

Top中是如何取到Linux內(nèi)核中的Hertz的?以及CPU使用率到底是怎么算出來的?

Docker 監(jiān)控的一點(diǎn)想法

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66748.html

相關(guān)文章

  • (一)線程發(fā)展歷史

    摘要:從多線程的發(fā)展來看,可以操作系統(tǒng)的發(fā)展分為三個歷史階段真空管和穿孔卡片晶體管和批處理系統(tǒng)集成電路和多道程序設(shè)計最早的計算機(jī)只能解決簡單的數(shù)學(xué)運(yùn)算問題,比如正弦余弦等。我們用了比較長的篇幅介紹了進(jìn)程線程發(fā)展的歷史。 專題簡介 作為一個合格的Java程序員,必須要對并發(fā)編程有一個深層次的了解,在很多互聯(lián)網(wǎng)企業(yè)都會重點(diǎn)考察這一塊??赡芎芏喙ぷ?年以上的Java程序員對于這一領(lǐng)域幾乎沒有太多研...

    noONE 評論0 收藏0
  • 終于明白:有了線程,為什么還要有協(xié)程?

    摘要:每個進(jìn)程的第一個線程都會隨著該進(jìn)程的啟動而被創(chuàng)建,它們可以被稱為其所屬進(jìn)程的主線程。因此,線程也被稱為輕量級進(jìn)程。與進(jìn)程調(diào)度類似,在線程之間快速切換,制造了線程并行運(yùn)行的假象。也就是說,線程之間是沒有保護(hù)的。其中的指代的就是系統(tǒng)級線程。 并發(fā)的發(fā)展歷史 其實(shí),在早期計算機(jī)并沒有包含操作系統(tǒng),...

    不知名網(wǎng)友 評論0 收藏0
  • 進(jìn)程與線程

    摘要:進(jìn)程與線程進(jìn)程和線程是操作系統(tǒng)的基本概念但是它們比較抽象不容易掌握。線程,有時被稱為輕量進(jìn)程,,是程序執(zhí)行流的最小單元。 進(jìn)程與線程 進(jìn)程(process)和線程(thread)是操作系統(tǒng)的基本概念,但是它們比較抽象,不容易掌握。 有一個很好的類比,可以把它們解釋地清晰易懂。 CPU 計算機(jī)的核心是CPU,它承擔(dān)了所有的計算任務(wù)。它就像一座工廠,時刻在運(yùn)行。 假定工廠的電力有限,一次...

    Jingbin_ 評論0 收藏0
  • Java 線程實(shí)現(xiàn)方式

    摘要:線程的可能實(shí)現(xiàn)方式基本上主流的操作系統(tǒng)都支持線程,也提供了線程的實(shí)現(xiàn)。使用用戶線程和內(nèi)核線程混合實(shí)現(xiàn)在這種混合實(shí)現(xiàn)下,既存在用戶線程,也存在內(nèi)核線程。 進(jìn)程與線程 在傳統(tǒng)的操作系統(tǒng)中,最核心的概念是進(jìn)程,進(jìn)程是對正在運(yùn)行的程序的一個抽象。進(jìn)程的存在讓并行成為了可能,在一個操作系統(tǒng)中,允許運(yùn)行著多個進(jìn)程,這些進(jìn)程看起來是同時在運(yùn)行的。如果我們的計算機(jī)同時運(yùn)行著 web 瀏覽器、電子郵件客...

    曹金海 評論0 收藏0
  • 深入理解Node.js 進(jìn)程與線程(8000長文徹底搞懂)

    摘要:在單核系統(tǒng)之上我們采用單進(jìn)程單線程的模式來開發(fā)。由進(jìn)程來管理所有的子進(jìn)程,主進(jìn)程不負(fù)責(zé)具體的任務(wù)處理,主要工作是負(fù)責(zé)調(diào)度和管理。模塊與模塊總結(jié)無論是模塊還是模塊,為了解決實(shí)例單線程運(yùn)行,無法利用多核的問題而出現(xiàn)的。 前言 進(jìn)程與線程是一個程序員的必知概念,面試經(jīng)常被問及,但是一些文章內(nèi)容只是講講理論知識,可能一些小伙伴并沒有真的理解,在實(shí)際開發(fā)中應(yīng)用也比較少。本篇文章除了介紹概念,通過...

    Harpsichord1207 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<