CPU死鎖

https://blog.csdn.net/sunny05296/article/details/82858071html

最近碰到了Centos7.2上終端打印soft lockup CPU死鎖,系統無響應狀態。直接緣由是:若是CPU太忙致使喂狗(watchdog)不及時,系統會打印CPU死鎖信息:java

kernel:BUG: soft lockup - CPU#0 stuck for 38s! [kworker/0:1:25758]服務器

kernel:BUG: soft lockup - CPU#7 stuck for 36s! [java:16182]post

......性能

內核參數kernel.watchdog_thresh(/proc/sys/kernel/watchdog_thresh)系統默認值爲10。若是超過2*10秒會打印信息,注意:調整值時參數不能大於60。優化

調整該值能夠延長喂狗等待時間,可是不能完全解決問題,須要找到根本緣由。.net

能夠打開panic,將/proc/sys/kernel/panic的默認值0改成1,便於定位。unix

引起CPU死鎖的緣由有不少種:htm

服務器電源供電不足,致使CPU電壓不穩致使CPU死鎖

blog

* vcpus超過物理cpu cores(虛擬CPU數超過物理CPU數)

* 虛機所在的宿主機的CPU太忙或磁盤IO過高

* 虛機的的CPU太忙或磁盤IO過高
  
* BIOS KVM開啓之後的相關bug,關閉KVM可解決,但關閉之後物理機不支持虛擬化
  
* VM網卡驅動存在bug,處理高水位流量時存在bug致使CPU死鎖

* BIOS開啓了超頻,致使超頻時電壓不穩,容易出現CPU死鎖
  
* Linux kernel存在bug

* KVM存在bug
  
* clocksource tsc unstable on CentOS and cloud Linux with Hyper-V Virtualisation
  https://unix.stackexchange.com/questions/70377/bug-soft-lockup-cpu-stuck-for-x-seconds
  經過設置clocksource=jiffies可解決

* BIOS Intel C-State開啓致使,關閉可解決

* BIOS spread spectrum開啓致使
  當主板上的時鐘震盪發生器工做時,脈衝的尖峯會產生emi(電磁干擾)。spread spectrum(頻展)設定功能能夠下降脈衝發生器所產生的電磁干擾,脈衝波的尖峯會衰減爲較爲平滑的曲線。  若是咱們沒有遇到電磁干擾問題,建議將此項設定爲disabled,這欄能夠優化系統的性能表現和穩定性;  不然應該將此項設定爲enabled。 若是對cpu進行超頻,必須將此項禁用。由於即便是微小的脈衝值漂移也會致使超頻運行的cpu鎖死。  再次強調:CPU超頻時,SPREAD SPECTRUM必須關閉,不然容易出現鎖死cpu的狀況。

相關文章
相關標籤/搜索