成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何在Linux下根據(jù)運(yùn)行的進(jìn)程監(jiān)控CPU使用率

這篇文章主要介紹如何在Linux下根據(jù)運(yùn)行的進(jìn)程監(jiān)控CPU使用率,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

cpustat 是 Linux 下一個(gè)強(qiáng)大的系統(tǒng)性能測(cè)量程序,它用 Go 編程語(yǔ)言 編寫。它通過(guò)使用  “用于分析任意系統(tǒng)的性能的方法(USE)”,以有效的方式顯示 CPU 利用率和飽和度。

它高頻率對(duì)系統(tǒng)中運(yùn)行的每個(gè)進(jìn)程進(jìn)行取樣,然后以較低的頻率匯總這些樣本。例如,它能夠每 200ms 測(cè)量一次每個(gè)進(jìn)程,然后每 5  秒?yún)R總這些樣本,包括某些度量的最小/平均/***值(min/avg/max)。

cpustat 能用兩種方式輸出數(shù)據(jù):定時(shí)匯總的純文本列表和每個(gè)取樣的彩色滾動(dòng)面板。

如何在 Linux 中安裝 cpustat

為了使用 cpustat,你的 Linux 系統(tǒng)中必須安裝有 Go 語(yǔ)言(GoLang),如果你還沒有安裝它,點(diǎn)擊下面的鏈接逐步安裝  GoLang:

在 Linux 下安裝 GoLang(Go 編程語(yǔ)言)

安裝完 Go 以后,輸入下面的 go get 命令安裝 cpustat,這個(gè)命令會(huì)將 cpustat 二進(jìn)制文件安裝到你的 GOBIN  變量(所指的路徑):

# go get github.com/uber-common/cpustat

如何在 Linux 中使用 cpustat

安裝過(guò)程完成后,如果你不是以 root 用戶控制系統(tǒng),像下面這樣使用 sudo 命令獲取 root 權(quán)限運(yùn)行  cpustat,否則會(huì)出現(xiàn)下面顯示的錯(cuò)誤信息:

$ $GOBIN/cpustat This program uses the netlink taskstats interface, so it must be run as root.

注意:想要像你系統(tǒng)中已經(jīng)安裝的其它 Go 程序那樣運(yùn)行 cpustat,你需要把 GOBIN 變量添加到 PATH 環(huán)境變量。打開下面的鏈接學(xué)習(xí)如何在  Linux 中設(shè)置 PATH 變量。

  • 學(xué)習(xí)如何在 Linux 中***設(shè)置你的 $PATH 變量

cpustat 是這樣工作的:在每個(gè)時(shí)間間隔查詢 /proc 目錄獲取當(dāng)前進(jìn)程 ID 列表,然后:

  • 對(duì)于每個(gè) PID,讀取 /proc/pid/stat,然后計(jì)算和前一個(gè)樣本的差別。

  • 如果是一個(gè)新的 PID,讀取 /proc/pid/cmdline。

  • 對(duì)于每個(gè) PID,發(fā)送 netlink 消息獲取 taskstat,計(jì)算和前一個(gè)樣本的差別。

  • 讀取 /proc/stat 獲取總的系統(tǒng)統(tǒng)計(jì)信息。

根據(jù)獲取所有這些統(tǒng)計(jì)信息所花費(fèi)的時(shí)間,會(huì)調(diào)整每個(gè)休息間隔。另外,通過(guò)每次取樣之間實(shí)際經(jīng)過(guò)的時(shí)間,每個(gè)樣本也會(huì)記錄它用于測(cè)量的時(shí)間。這可用于計(jì)算  cpustat 自身的延遲。

當(dāng)不帶任何參數(shù)運(yùn)行時(shí),cpustat 默認(rèn)會(huì)顯示以下信息:樣本間隔:200ms;匯總間隔:2s(10 個(gè)樣本);顯示前 10  個(gè)進(jìn)程;用戶過(guò)濾器:all;pid 過(guò)濾器:all。正如下面截圖所示:

$ sudo $GOBIN/cpustat

如何在Linux下根據(jù)運(yùn)行的進(jìn)程監(jiān)控CPU使用率

cpustat – 監(jiān)控 Linux CPU 使用

在上面的輸出中,之前顯示的系統(tǒng)范圍的度量字段意義如下:

  • usr - 用戶模式運(yùn)行時(shí)間占 CPU 百分比的 min/avg/max 值。

  • sys - 系統(tǒng)模式運(yùn)行時(shí)間占 CPU 百分比的 min/avg/max 值。

  • nice - 用戶模式低優(yōu)先級(jí)運(yùn)行時(shí)間占 CPU 百分比的 min/avg/max 值。

  • idle - 用戶模式空閑時(shí)間占 CPU 百分比的 min/avg/max 值。

  • iowait - 等待磁盤 IO 的 min/avg/max 延遲時(shí)間。

  • prun - 處于可運(yùn)行狀態(tài)的 min/avg/max 進(jìn)程數(shù)量(同“平均負(fù)載”一樣)。

  • pblock - 被磁盤 IO 阻塞的 min/avg/max 進(jìn)程數(shù)量。

  • pstat - 在本次匯總間隔里啟動(dòng)的進(jìn)程/線程數(shù)目。

同樣還是上面的輸出,對(duì)于一個(gè)進(jìn)程,不同列的意思分別是:

  • name - 從 /proc/pid/stat 或 /proc/pid/cmdline 獲取的進(jìn)程名稱。

  • pid - 進(jìn)程 ID,也被用作 “tgid” (線程組 ID)。

  • min - 該 pid 的用戶模式+系統(tǒng)模式時(shí)間的最小樣本,取自 /proc/pid/stat。比率是 CPU 的百分比。

  • max - 該 pid 的用戶模式+系統(tǒng)模式時(shí)間的***樣本,取自 /proc/pid/stat。

  • usr - 在匯總期間該 pid 的平均用戶模式運(yùn)行時(shí)間,取自 /proc/pid/stat。

  • sys - 在匯總期間該 pid 的平均系統(tǒng)模式運(yùn)行時(shí)間,取自 /proc/pid/stat。

  • nice - 表示該進(jìn)程的當(dāng)前 “nice” 值,取自 /proc/pid/stat。值越高表示越好(nicer)。

  • runq - 進(jìn)程和它所有線程可運(yùn)行但等待運(yùn)行的時(shí)間,通過(guò) netlink 取自 taskstats。比率是 CPU 的百分比。

  • iow - 進(jìn)程和它所有線程被磁盤 IO 阻塞的時(shí)間,通過(guò) netlink 取自 taskstats。比率是 CPU  的百分比,對(duì)整個(gè)匯總間隔平均。

  • swap - 進(jìn)程和它所有線程等待被換入(swap in)的時(shí)間,通過(guò) netlink 取自 taskstats。Scale 是 CPU  的百分比,對(duì)整個(gè)匯總間隔平均。

  • vcx 和 icx - 在匯總間隔期間進(jìn)程和它的所有線程自動(dòng)上下文切換總的次數(shù),通過(guò) netlink 取自 taskstats。

  • rss - 從 /proc/pid/stat 獲取的當(dāng)前 RSS 值。它是指該進(jìn)程正在使用的內(nèi)存數(shù)量。

  • ctime - 在匯總間隔期間等待子進(jìn)程退出的用戶模式+系統(tǒng)模式 CPU 時(shí)間總和,取自 /proc/pid/stat。  注意長(zhǎng)時(shí)間運(yùn)行的子進(jìn)程可能導(dǎo)致混淆這個(gè)值,因?yàn)橹挥性谧舆M(jìn)程退出后才會(huì)報(bào)告時(shí)間。但是,這對(duì)于計(jì)算高頻 cron 任務(wù)以及 CPU  時(shí)間經(jīng)常被多個(gè)子進(jìn)程使用的健康檢查非常有幫助。

  • thrd - 匯總間隔***線程的數(shù)目,取自 /proc/pid/stat。

  • sam - 在這個(gè)匯總間隔期間該進(jìn)程的樣本數(shù)目。最近啟動(dòng)或退出的進(jìn)程可能看起來(lái)比匯總間隔的樣本數(shù)目少。

下面的命令顯示了系統(tǒng)中運(yùn)行的前 10 個(gè) root 用戶進(jìn)程:

$ sudo $GOBIN/cpustat -u root

如何在Linux下根據(jù)運(yùn)行的進(jìn)程監(jiān)控CPU使用率

查找 root 用戶正在運(yùn)行的進(jìn)程

要想用更好看的終端模式顯示輸出,像下面這樣用 -t 選項(xiàng):

$ sudo $GOBIN/cpustat -u root -t

如何在Linux下根據(jù)運(yùn)行的進(jìn)程監(jiān)控CPU使用率

root 用戶正在運(yùn)行的進(jìn)程

要查看前 x 個(gè)進(jìn)程(默認(rèn)是 10),你可以使用 -n 選項(xiàng),下面的命令顯示了系統(tǒng)中 正在運(yùn)行的前 20 個(gè)進(jìn)程:

$ sudo $GOBIN/cpustat -n 20

你也可以像下面這樣使用 -cpuprofile 選項(xiàng)將 CPU 信息寫到文件,然后用 cat 命令查看文件:

$ sudo $GOBIN/cpustat -cpuprofile cpuprof.txt $ cat cpuprof.txt

要顯示幫助信息,像下面這樣使用 -h 選項(xiàng):

$ sudo $GOBIN/cpustat -h

以上是“如何在Linux下根據(jù)運(yùn)行的進(jìn)程監(jiān)控CPU使用率”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

標(biāo)題名稱:如何在Linux下根據(jù)運(yùn)行的進(jìn)程監(jiān)控CPU使用率
網(wǎng)頁(yè)地址:http://jinyejixie.com/article14/jjijge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣、服務(wù)器托管做網(wǎng)站、App開發(fā)、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
县级市| 玉树县| 连江县| 满城县| 盐边县| 常山县| 灵山县| 山丹县| 朝阳县| 吉水县| 临沧市| 咸阳市| 温宿县| 阿克陶县| 怀宁县| 新田县| 伊宁县| 昌黎县| 建德市| 神池县| 五常市| 贵南县| 肇州县| 中西区| 湘潭县| 玉田县| 平顶山市| 余姚市| 阳春市| 凤城市| 清新县| 克拉玛依市| 达日县| 建湖县| 隆安县| 山西省| 岱山县| 蓬溪县| 清镇市| 读书| 连云港市|