国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

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

kid143 / 3441人閱讀

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

計(jì)算公式
(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的計(jì)算

process jiffies是內(nèi)核提供的該進(jìn)程在DeltaT時(shí)間內(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 為L(zhǎng)inux核心變數(shù)(unsigned long),它被用來(lái)記錄系統(tǒng)自開(kāi)機(jī)以來(lái),已經(jīng)過(guò)了多少tick。每發(fā)生一次timer interrupt,Jiffies變數(shù)會(huì)被加一。

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

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

Hertz(tick per second)

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

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

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

et

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

(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使用率到底是怎么算出來(lái)的?

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/66748.html

相關(guān)文章

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

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

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

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

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

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

    Jingbin_ 評(píng)論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)程是對(duì)正在運(yùn)行的程序的一個(gè)抽象。進(jìn)程的存在讓并行成為了可能,在一個(gè)操作系統(tǒng)中,允許運(yùn)行著多個(gè)進(jìn)程,這些進(jìn)程看起來(lái)是同時(shí)在運(yùn)行的。如果我們的計(jì)算機(jī)同時(shí)運(yùn)行著 web 瀏覽器、電子郵件客...

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

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

    Harpsichord1207 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<