linux下如何计算cpu利用率,Linux下的CPU利用率计算原理详解
我們?cè)诟阈阅軠y(cè)試的時(shí)候,對(duì)后臺(tái)服務(wù)器的CPU利用率監(jiān)控是一個(gè)常用的手段。服務(wù)器的CPU利用率高,則表明服務(wù)器很繁忙。如果前臺(tái)響應(yīng)時(shí)間越來(lái)越大,而后臺(tái)CPU利用率始終上不去,說(shuō)明在某個(gè)地方有瓶頸了,系統(tǒng)需要調(diào)優(yōu)。這個(gè)是即使不懂技術(shù)的人都容易理解的事情。
上面理解對(duì)嗎?我個(gè)人覺(jué)得不十分準(zhǔn)確。這個(gè)要看后臺(tái)你測(cè)試的進(jìn)程是什么類型的。如果是計(jì)算密集型的進(jìn)程,當(dāng)前端壓力越來(lái)越大的時(shí)候,很容易把CPU利用率打上去。但是如果是I/O網(wǎng)絡(luò)密集型的進(jìn)程,即使客戶端的請(qǐng)求越來(lái)越多,但是服務(wù)器CPU不一定能上去,這個(gè)是你要測(cè)試的進(jìn)程的自然屬性決定的。比較常見(jiàn)的就是,大文件頻繁讀寫的cpu開(kāi)銷遠(yuǎn)小于小文件頻繁讀寫的開(kāi)銷。因?yàn)樵贗/O吞吐量一定時(shí),小文件的讀寫更加頻繁,需要更多的cpu來(lái)處理I/O的中斷。
在Linux/Unix下,CPU利用率分為用戶態(tài),系統(tǒng)態(tài)和空閑態(tài),分別表示CPU處于用戶態(tài)執(zhí)行的時(shí)間,系統(tǒng)內(nèi)核執(zhí)行的時(shí)間,和空閑系統(tǒng)進(jìn)程執(zhí)行的時(shí)間。平時(shí)所說(shuō)的CPU利用率是指:CPU執(zhí)行非系統(tǒng)空閑進(jìn)程的時(shí)間 / CPU總的執(zhí)行時(shí)間。
在Linux的內(nèi)核中,有一個(gè)全局變量:Jiffies。 Jiffies代表時(shí)間。它的單位隨硬件平臺(tái)的不同而不同。系統(tǒng)里定義了一個(gè)常數(shù)HZ,代表每秒種最小時(shí)間間隔的數(shù)目。這樣jiffies的單位就是1/HZ。Intel平臺(tái)jiffies的單位是1/100秒,這就是系統(tǒng)所能分辨的最小時(shí)間間隔了。每個(gè)CPU時(shí)間片,Jiffies都要加1。 CPU的利用率就是用執(zhí)行用戶態(tài)+系統(tǒng)態(tài)的Jiffies除以總的Jifffies來(lái)表示。
在Linux系統(tǒng)中,可以用/proc/stat文件來(lái)計(jì)算cpu的利用率(詳細(xì)的解釋可參考:http://www.linuxho
總結(jié)
以上是生活随笔為你收集整理的linux下如何计算cpu利用率,Linux下的CPU利用率计算原理详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 新人使用Git获取远程仓库项目
- 下一篇: 一、pycharm的使用技巧和好用插件