再談CPU使用率100 的問題

2021-08-14 06:36:47 字數 687 閱讀 6900

曾經我很討厭那些運維一見到cpu使用率100%

的時候就大叫狂跳的樣子,我還曾經說過,如果cpu不是拿來用的,難道是用來閒置的嗎

。好像我說的話挺有道理。但是,我錯了…

不過這也並不意味著運維是對的,cpu出現100%後他們大叫狂跳大多數是覺得自己攤上事了,而並不是基於責任感為了發現並解決問題(這一點請相信我)。不然為什麼他們總是把事情丟給研發而不是自己嘗試去check一下呢?

基於**處理器的現代計算機是乙個典型的m/m/1

排隊系統,cpu就是服務台。而pending的任務就是排隊實體。

我起初認為,cpu使用率達到了100%正是表現了cpu正在被充分利用,然而我卻忽略了接下來可能發生的情況,接下來的局面非常危險。既然作為乙個典型的排隊系統,任務到達就符合典型的泊松分布

,而任務的排隊時間則符合指數分布

,這是必須學了排隊論以後才知道的。

cpu使用率100%意味著在泊松分布下的任務還在按照該概率分布持續到達,如果cpu不出讓一些空閒時間,在指數分布下就意味著新到達的任務排隊時間將會達到無窮大,最終導致儲存器溢位。因此,按照指數分布的排隊時間的約束,cpu使用率100%只能維持一段很短的時間,如果cpu持續100%,則必然導致大量的任務hang住得不到響應,這正是ddos攻擊者想要達到的效果。

這裡就不擺公式了,總之,cpu持續100%十有**會出問題的,不然的話按照任務到達率泊松分布是說不通的。

控制CPU使用率

我使用的是ubuntu 14.04版本,用的是自帶的系統監視器來觀察cpu使用率的變化。1.首先來說說怎麼控制cpu使用率,當程式執行乙個死迴圈的時候,使用率就會變成100 而當程式進入idle的時候,使用率就會很低 在別的程式不啟動的情況下 那麼控制cpu使用率就是調整它idle和busy的時間比...

cpu使用率統計

cat proc stat得到 user nice system idle iowait irq softirq stealstolen guest 的9元組 再採兩個夠短的時間點,做差計算即可 cat proc pid stat讀取到 pid 6873 程序號utime 1587 該任務在使用者態...

檢視CPU使用率

rem 如果wmi服務 服務名為winmgmt 壞掉了,需要到system32 webm目錄下執行如下注釋的命令 remfor i in dll do regsvr32 s i remregsvr32 s scrcons.exe remrem regsvr32 s wbemtest.exe remr...