linux c控制cpu利用率

2021-06-23 01:04:50 字數 772 閱讀 2934

1、在x86體系結構中系統定時器的預設頻率是100,即i386處理上的每秒鐘時鐘中斷100次。所以在i386中每10ms產生一次時鐘中斷。

2、程序排程,可能是主動讓出cpu,也可能是時鐘中斷中讓出cpu。

3、控制cpu的利用率,實際上是控制cpu在totaltime時間內繁忙的時間busytime。busytime和totaltime的比值就是cpu的利用率。

4、檢視cpu利用率的辦法有很多中,比如在虛擬機器檔案系統proc下使用cat /proc/cpuinfo。不過使用這種辦法得到的cpu利用率不是很清晰。可以使用top 命令代替之。為了效果更加明顯,可以將top的重新整理時間間隔設定的小一點。如top -t 0.5秒重新整理一次。

5、程式設計:usleep()函式可以使程序掛起,不占用cpu。假設此時主機上執行的程序占用cpu比較小,那麼可以認為此時cpu為空閒狀態。這樣只需要控制程序執行的時間和usleep的時間即可以控制整個linux系統的cpu利用率。為了減少cpu排程產生的切換時間,我們使執行時間為系統乙個時鐘中斷的時間,即設定總時間為100ms,執行時間為10ms,空閒時間為90ms。

程式**如下:

#include

#include

#include

#define totaltime 100000 //totaltime is 100ms = 100000us

#define starttime 0 

void main()

usleep((totaltime*9)/10); }

return ; }

cpu利用率 CPU利用率錯誤

cpu利用率 cpu利用率是每個人用來衡量處理器效能的指標。netflix的高階效能架構師布倫丹 格雷格 brendan gregg 在第16屆年度南加州linux expo scale 上稱其為 五分鐘公共服務公告 但 cpu卻是一種誤導性的衡量指標,說明處理器的實際繁忙程度。布倫丹在他的閃電演講...

SQL SERVER 檢視CPU利用率

檢視cpu利用率 create procedure sp gettop10 cpu as begin set nocount on declare cinterval char 8 declare interval int set cinterval 00 00 10 create table th...

SQL SERVER 檢視CPU利用率

檢視cpu利用率 create procedure sp gettop10 cpu as begin set nocount on declare cinterval char 8 declare interval int set cinterval 00 00 10 create table th...