linux cpu占用分析,Linux下CPU占用率高分析方法
一、可能有線程一直占用CPU資源
1. 先通過(guò) ps 查看進(jìn)程狀態(tài),找出進(jìn)程的PID(8209)。
2.jstack -l 8209 > /usr/local/work/tomcat/8209.stack 導(dǎo)出PID對(duì)應(yīng)的線程信息到文件
3.對(duì)導(dǎo)出的線程文件下載本地做分析(可以文本打開(kāi))
4. 通過(guò)top -H -p 8209 命令查看對(duì)應(yīng)進(jìn)程是哪個(gè)線程占用CPU過(guò)高(eg:8308)
5.printf "%x\n" 8308 轉(zhuǎn)換十進(jìn)制為十六進(jìn)制 此處為:2074。
6.在導(dǎo)出的堆棧文件中搜索線程ID等于nid=0x2074的線程,此處即列出了該線程對(duì)應(yīng)的類(lèi)
7.根據(jù)線程信息找到對(duì)應(yīng)的類(lèi)定位問(wèn)題成功,可能的原因:
? ? ? ? ? ? ? ? ? ? ?1.程序計(jì)算比較密集(大型矩陣的運(yùn)算)
? ? ? ? ? ? ? ? ? ? ?2.程序出現(xiàn)了死循環(huán)(while循環(huán),hashmap死循環(huán))
? ? ? ? ? ? ? ? ? ? ?3. 程序邏輯結(jié)構(gòu)的問(wèn)題(數(shù)據(jù)庫(kù)連接沒(méi)有釋放,連接池死鎖,自旋鎖一直占用著內(nèi)存)
二、查看磁盤(pán)使用率是不是超出正常范圍。(df)
三、查看內(nèi)存使用率是否超出正常范圍(free)
四、jvm內(nèi)存狀態(tài)可能出現(xiàn)異常,可能頻繁的GC原因。可以適當(dāng)?shù)母淖兌褩1壤?/p>
CPU利用率:1 - CPU空閑運(yùn)行時(shí)間/總運(yùn)行時(shí)間
CPU負(fù)載(load):是指在一段時(shí)間內(nèi)占用cpu時(shí)間的進(jìn)程和等待cpu時(shí)間的進(jìn)程數(shù)(處于被喚醒狀態(tài),不是wait狀態(tài)),取決于CPU隊(duì)列。
如果現(xiàn)在出現(xiàn)CPU利用率很低,load很高的情況,可能是IO密集型的任務(wù)比較多。
原文地址:https://blog.csdn.net/qiuchaoxi/article/details/81296713總結(jié)
以上是生活随笔為你收集整理的linux cpu占用分析,Linux下CPU占用率高分析方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 搜索引擎下拉食云速捷详细_「seo推广技
- 下一篇: 【实用工具指南 一】OCR图片识别自动翻