① linux cpu佔用過高自動保存
linux cpu佔用過高自動保存應該這樣操作:
一、首先我們在Centos7上模擬消耗CPU資源的java進程
首先配置好JDK環境,使命令行可以直接識別到java、javac命令。
(1)新建TestCpu.java文件,內容如下
解釋:代碼里有個while(true){},形成無限循環,將直接導致CPU使用率飆升100%。注意文件命名TestCpu.java要和文件里類命名TestCpu保持一致。
(2)執行javac TestCpu.java進行編譯
編譯完成後會生成TestCpu.class文件
(3)執行java TestCpu運行JAVA程序
二、獲取佔用CPU最多的進程pid
新開終端執行top命令(或者top -c,-c選項用來顯示具體命令)查看CPU使用率
PS:CPU負載多少是正常?
個人認為是load average三個值(分別為1、5、15分鍾負載)相差不大,說明系統負載平穩,具體是負載正常還是負載高,對於單核CPU,這三個值不大於1,說明負載有點吃緊,如果持續其中某個值大於1,則說明該時間段的負載高;對於多核CPU,這三個值分別除以CPU總邏輯核數,均不大於1,則負載平穩且不高,反之,則說明CPU吃緊。
② linuxcpu溫度查看linuxcpu溫度
linux有一個java進程cpu達到100,怎麼回事,程序進程多?
cpu使用率高的原因及解決方法:第一、殺毒軟體,常見的金山、瑞星殺毒軟體會對網頁、插件等進行監控,這樣就增大了系統負擔,自然也就會造成cpu使用率高。第二、驅動不達標,現在人們使用的驅動有幾大一部分是屬於測試版的驅動,這一類驅動並不合格,它可以造成CPU100%的使用率,而且不容易發覺。第三、病毒木馬,病毒在系統內部復制,必然造成極高的cpu佔有率;第四、網路鏈接,這是最直接的客觀原因,主要是網路連接不穩定。第五、啟動項太多,一般來說開機啟動項過多,就會增加cpu的使用率,增加其荷載。第六、桌面盡量少放文件,在桌面上放過多的文件,極大的佔用cpu,造成使用率過高。第七、軟體本身需要佔有很高的CPU,比如一覽器;有時有的軟體和系統會有點不兼容。第八、「svchost」進程影響,svchost.exe是系統的一個核心進程,svchost.exe有時非常令人頭痛,如果看到某個svchost.exe佔用很大CPU,這時可以去下aports或者fport來檢察其對應的程序路徑,看下是不是有程序調用svchost.exe。第九、右擊文件100%_使用率,這個也是非常常見,在官方解釋也很有意思。第十、cpu溫度過高,證明cpu本身就是出於不正常運行,自然也就會導致異常。第十一、word文件過大,cpu對其拼寫和語法檢查過度。
linux系統查看cpu溫度指令?
Linux系統下查看CPU溫度的方法是:
??首先打開linux系統,找到查詢軟體來查看cpu的溫度,然後打開終端輸入命令:查看相關軟體。
接著安裝感應器,在感應器里輸入安裝命令,一路默認即可,直接輸入感應器命令即可。
?真實的物理機中溫度正常。這些命令執行的過程中,需要你選擇是個否,只要直接一路是,就可以查看cpu溫度啦。
③ 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 發現該進程持續處於非睡眠狀態,且運行時間較長,可以初步判定系統在持續的進行換頁操作,可以將問題轉向內存不足的原因來排查。
④ Linuxcpu高重啟linuxcpu高
linux進程佔用cpu正在運行是什麼狀態?
系統軟體正在後台運行
linux一個cpu高,怎麼排查?
查看CPU使用,在Linux系統下,使用top命令查看CPU使用情況。
操作步驟:1)、通過top命令找到CPU消耗最多的進程號;
2)、通過top-Hp進程號命令找到CPU消耗最多的線程號(列名仍然為PID);
3)、通過printf%xn線程號命令輸出該線程號對應的16進制數字;
4)、PID進程在內核調用情況。如果是Java應用可通過jstack進程號|grep16進制線程號-A10命令找到CPU消耗最多的線程方法堆棧。
linux系統中毒了怎麼辦?linux異常進程CPU過高?
確認系統版本類型
因為有的系統版本命令不一樣。cat/etc/redhat-release
首先看看系統計劃任務有么有內容,crontab-e
如果有內容把內容禁用一下,然後停止服務。比如centos7crond服務
比如這台主機被加入了計劃任務,查看腳本文件。其中有用到/tmp目錄
把/tmp和/root下面的異常目錄清理一下
top查看伺服器進程情況
比如本圖左左發現有2個進程流量異常大
查看進程所在路徑,cd/proc/pid號ls查看cwd命令路徑
如圖這里可以看到,剛剛異常進程所在的路徑和腳本名字
切換到對應跟路徑下面,把異常的進程文件刪除
都清理之後,還要看看/var/spool/cron/crontabs/croot有沒有,都要刪除一下
此外,localbash和chkconfig/etc/init.d和/etc/rc.d/rc3.d目錄都要看看
linux程序systemcpu佔用較高說明什麼問題?
這說明你的程序在執行過程中,有如下幾種情況中的一種或者多種情況發生:
1.進入了一個死循環無法跳出來;
2.也許是一直在等待一個信號,如從dbus上讀取一個你需要的信息;
3.有可能是你的程序在對一個非常大的內容進行分析和處理;
4.有可能是你的程序要處理的問題比較多,所以在一個個慢慢的執行。大部分是由上面四種情況引起的,在這四種情況中,第一種情況堅決要避免,因為不如此,那麼你的CPU資源將會被吃光。
第二種情況,我的想法是,你要修改一下,看看有沒有什麼更快,更高效的方法來獲取到需要的信號,或者是不去獲取信號,而是改用其他方式來處理。
第三和第四兩種情況,就要根據你的實際需要來定了。如果是必須這樣做,那麼也只能夠耐心的等待了。但是可以考慮優化代碼,優化演算法的方式來提高效率。Linux系統下有個很好的調試工具gdb。如果不知道自己的程序出現了什麼問題,可以利用gdb工具逐步執行,去查找錯誤所在。
⑤ linux cpu使用率過高排查
方法一
第一步:使用
top命令,然後按shift+p按照CPU排序
找到佔用CPU過高的進程的pid
第二步:使用
top -H -p [進程id]
找到進程中消耗資源最高的線程的id
第三步:使用
echo 'obase=16;[線程id]' | bc或者printf "%x
" [線程id]
將線程id轉換為16進制(字母要小寫)
bc是linux的計算器命令
第四步:執行
jstack [進程id] |grep -A 10 [線程id的16進制]」
查看線程狀態信息
方法二
第一步:使用
top命令,然後按shift+p按照CPU排序
找到佔用CPU過高的進程
第二步:使用
ps -mp pid -o THREAD,tid,time | sort -rn
獲取線程信息,並找到佔用CPU高的線程
第三步:使用
echo 'obase=16;[線程id]' | bc或者printf "%x
" [線程id]
將需要的線程ID轉換為16進制格式
第四步:使用
jstack pid |grep tid -A 30 [線程id的16進制]
列印線程的堆棧信息
案例分析
場景描述
生產環境下JAVA進程高CPU佔用故障排查
解決過程
1、根據top命令,發現PID為2633的Java進程佔用CPU高達300%,出現故障。
2、找到該進程後,如何定位具體線程或代碼呢,首先顯示線程列表,並按照CPU佔用高的線程排序:
1[root@localhost ~]# ps -mp 2633 -o THREAD,tid,time | sort -rn
顯示結果如下:
化主動為被動的方式,一方面減輕了運維工程師的工作,另一方面也減小了運維漏看或者忽略告警的情況發生。