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