1. linux cpu佔用較高
Linux伺服器上出現CPU負載達到100%居高不下的情況,如果CPU 持續跑高,則會影響業務系統的正常運行; CPU利用率。根據經驗來看,用戶空間進程佔用CPU比例在 65-70%。一般不能超過這個比例,超過這個比例,系統性能就會降低,平均負載升高,這點將會在下面的測試中看到。
進程上下文切換。上下文切換和CPU利用率應該聯系起來,如果CPU利用率低,那麼上下文切換稍高點也能接受。上下文切換也是需要消耗CPU資源的,頻繁的切換必將使得CPU利用率升高。
運行隊列中等待運行的進程數。每個CPU核心中等待處理的進程數不應該超過3個線程/進程。如4核心的機器,那麼隊列的最大值應該不超過12個。
對於CPU過載問題通常使用以下兩種方式即可快速定位(不能涵蓋所有特殊情況,請作為其中的參考排查思路):
一、排查分析
方法一(針對java應用):
第一步:使用
top命令,然後按shift+p按照CPU排序
找到佔用CPU過高的進程的pid
第二步:使用
top -H -p [進程id]
找到進程中消耗資源最高的線程的id
第三步:使用
echo 'obase=16;[線程id]' | bc或者printf "%x\n" [線程id]
將線程id轉換為16進制(字母要小寫)
bc是linux的計算器命令
第四步(此步驟可以和相對應的java開發進行一起排查):執行
jstack [進程id] |grep -A 10 [線程id的16進制]」
查看線程狀態信息
二、kswapd0 進程佔用 CPU 較高
操作系統都用分頁機制來管理物理內存,操作系統將磁碟的一部分劃出來作為虛擬內存,由於內存的速度要比磁碟快得多,所以操作系統要按照某種換頁機制將不需要的頁面換到磁碟中,將需要的頁面調到內存中,由於內存持續不足,這個換頁動作持續進行,kswapd0 是虛擬內存管理中負責換頁的,當伺服器內存不足的時候 kswapd0 會執行換頁操作,這個換頁操作是十分消耗主機 CPU 資源的。如果通過 top 發現該進程持續處於非睡眠狀態,且運行時間較長,可以初步判定系統在持續的進行換頁操作,可以將問題轉向內存不足的原因來排查。
2. 為什麼linux CPU使用率超過100%,如圖:紅框所示,加起來已經為103%了,系統CPU是多內核的。
和睿頻沒有關系。。。
Linux 的CPU佔用率是按照單核心計算的,如果該進程支持多線程,就回可以佔用多個核心,單個答進程超過100%也是很正常的事。但如果伺服器本身沒什麼負載,單進程或很多進程CPU佔用率超過100%就需要查看原因了。圖中的情況看起來並沒有太大問題,而且你抹去了進程命令信息。
3. linux中為什麼cpu使用率會超過100見解
linux的cpu使用頻率是根據cpu個數和核數決定的
top,然後你按一下鍵盤的1,這就是單個核心的負載,不然是所有核心的負載相加,自然會超過100
如上面 cpu個數是4個,那麼cpu可以佔到400%
4. linux 下 cpu 到100,php-fpm 的問題,問下怎麼解決
解決方法有如下三種:可以用殺毒軟體徹底清理系統內存和本地硬碟,並版且打開系統設置軟體,權察看有無異常啟動的程序。經常性更新升級殺毒軟體和防火牆,加強防毒意識,掌握正確的防殺毒知識。出現該問題可能是由於大量的蠕蟲病毒在系統內部迅速復制,造成CPU佔用資源率據高不下。
也可以選擇「開始」--「運行」,輸入:「msconfig」,選中「啟動」,關閉不必要的啟動項,重新啟動電腦即可。
也可以在注冊表編輯器中依次展開「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver 」,在右側窗口中新建一個名為「maxworkitems」的DWORD值。然後雙擊該值,在打開的窗口中鍵入下列數值並保存退出。
如果計算機有512MB以上的內存,鍵入「1024」;如果計算機內存小於512 MB,鍵入「256」。