linux檢視java程序cpu佔用過高
linux下查詢java程序佔用CPU過高原因
1. 查詢程序
top檢視程序佔用資源情況
明顯看出java的兩個程序22714,12406佔用過高cpu.
2.查詢執行緒
使用top -H -p <pid>檢視執行緒佔用情況
3.查詢java的堆疊資訊
將執行緒id轉換成十六進位制
#printf %x 15664
#3d30
然後再使用jstack查詢執行緒的堆疊資訊
語法:jstack <pid> | grep -a 執行緒id(十六進位制)
jstack <pid> | grep -a 3d30
這樣就找出了有問題的程式碼了。
剩下的就是分析原因和修改程式碼了。
相關推薦
linux檢視java程序cpu佔用過高
linux下查詢java程序佔用CPU過高原因1. 查詢程序top檢視程序佔用資源情況明顯看出java的兩個程序22714,12406佔用過高cpu. 2.查詢執行緒使用top -H -p <pid>檢視執行緒佔用情況 3.查詢java的堆疊資訊將執行緒id轉換成十
【轉】Linux下java程序CPU佔用率高分析方法
文章轉載的地址: https://blog.linuxeye.cn/343.html 在工作當中,肯定會遇到由程式碼所導致的高CPU耗用以及記憶體溢位的情況。這種情況發生時,我們怎麼去找出原因並解決。 一般解決方法是通過top命令找出消耗資源高的執行緒id,利用strace命令檢視該執行緒
java執行CPU佔用過高追蹤
流程執行命令: 1.top 查到pid 28555 2.ps aux|grep 28555 確定到是tomcat的程序 3.顯示執行緒列表 ps -mp 28555 -o THREAD,tid,time 查到tid 28802 4. printf "%x\n" 2880
java程序 cpu load過高分析過程
1\ jps -v列出所有的java程序 , top找出cpu佔用過高的對應的java 程序pid 2\ 使用top -H -p PID 命令檢視對應程序裡的哪個執行緒佔用CPU過高,取該執行緒pid 3\ 將執行緒的pid 轉成16進位制 4\jstack [程序
分析JAVA應用CPU佔用過高的問題
使用jstack分析java程式cpu佔用率過高的有關問題 使用jstack分析java程式cpu佔用率過高的問題 1,使用jps查找出java程序的pid,如3707 2,使用top -p 14292 -H觀察該程序中所有執行緒的CPU佔用。
我的計算機問題解決之:NT Kernel & System 程序CPU佔用過高(開機便保持在50%)
按CPU排序之後你就會發現是什麼後臺服務佔用了那麼高的CPU,我到後來才發現竟然是91助手(連線android和PC的一個軟體),當時雖然解除安裝了91助手,但是它竟然在C:windows\System32\drivers下面留下了91Ass**.sys的一個檔案,每次進系統都會載入,直接導致了我的CPU佔用
面試問題---JAVA程式CPU佔用過高怎麼定位
今天一個電話面試問了這個問題。回來查了下答案,自己也順帶操作一遍,做個記錄。之前只知道jstack工具可以檢視執行緒狀態這些。比如死鎖這些,主要是之前不知道top -H -p pid這個命令的使用,這命令可以看到程序下面執行緒資訊,拿到執行緒ID,然後再結合jstack命令使用就可以解決這個問題了。下面記錄一
[zz]存大量被佔用(kswap程序CPU利用率過高)的解決方案
問題描述: 通過free檢視時,大概有一半以上的實體記憶體分配到cache裡面,這樣大的 cache是造成記憶體的耗盡緣由,與此同時使用top或ps檢視程序時,kswapd程序負荷 很高,一般在90%以上,kswapd程序的作用是用於記憶
linux主機cpu 佔用過高分析
1.用top命令檢視哪個程序佔用CPU高 gateway閘道器程序14094佔用CPU高達891%,這個數值是程序內各個執行緒佔用CPU的累加值。 PID USER PR NI VIRT RES SHR S %CPU %MEM T
java web伺服器cpu佔用過高的處理
平時專案中有時遇到cpu過高的情況,在此基於自己有限的經驗寫個分享,此處的伺服器都是基於linux平臺。 cpu的佔有執行緒型別總的來說分為兩種: us :使用者空間佔用CPU百分比 sy :核心空間佔用CPU百分比 一般來講CPU us高的解決方法: CPU us
效能優化-CPU佔用過高問題排查
1. 效能優化是什麼? 1.1 效能優化就是發揮機器本來的效能 1.2 效能瓶頸在哪裡,木桶效應。 CPU佔用過高 1、現象重現 CPU佔用過高一般情況是程式碼中出現了迴圈呼叫,最容易出現的情況有幾種: a)遞迴呼叫,退出機制設計的不夠
MYSQL "ORDER BY rand()"的坑--容易導致機器負載、CPU佔用過高
在一次微信砍價活動營銷中,使用了4核16G10M頻寬的伺服器支撐業務,本來這個配置跑個PHP+MYSQL+nginx肯定輕輕鬆的事情,可是隨著活動的高潮,併發數一高,機器負載核CPU一下子就達到100% 始終找不到原因,只知道是mysql分配的記憶體不夠,一直給它加,但是重啟m
cpu佔用過高排查
top命令是Linux下常用的效能分析工具,能夠實時顯示系統中各個程序的資源佔用狀況,類似於Windows的工作管理員 內容解釋: PID:程序的ID USER:程序所有者 PR:程序的優先級別,越小越優先被執行 NInice:值 VIRT:程序佔用的虛擬記憶體 RES:程序佔用的實體記憶體 SHR:程
Win10 服務主機:本地系統 CPU佔用過高
這種情況,一般開機後,本地系統的CPU佔用就一直維持在30%左右,風扇一直轉很耗電。 可能是windows版本的問題,我在不同的機子上裝了四五個系統,都出現了這種情況。 解決方法如下: 1. 找到工作管理員中的“ 服務主機:本地系統”->“Windows Upda
MySQL案例:一次單核CPU佔用過高問題的處理
客戶現場反饋,top的檢查結果中,一個CPU的佔用一直是100%。實際上現場有4個CPU,而且這個伺服器是mysql專屬伺服器。 我的第一反應是io_thread一類的引數設定有問題,檢查以後發現read和write的thread設定都是4,這和CPU數一致,因此可以斷定這並不是單顆CPU佔用過高的問題。
vsCode剛開啟卡頓cpu佔用過高的原因
原因是:vscode剛開啟時預設搜尋路徑時陷入了死迴圈(也不能說死迴圈吧,就是大量搜尋導致的) 解決辦法:檔案->首選項->設定,然後搜尋“search.followSymlinks”改為false("search.followSymlinks": false,
C# WinForm CPU佔用過高
原因:程式中因為使用ThreadPool 多執行緒操作.Form.Invoke 用了很多,造成CPU佔用 90%以上,甚至程式假死..... 我一度去掉所有lock資料庫操作什麼的程式碼,都沒大的改善..... 解決方法: 每次呼叫完後. 讓她睡個300毫秒(System.Threading.Thre
解決win10系統CPU佔用過高【親測非常有效】
win10 系統的到來,讓使用者體驗到了更好的視覺效果和完善的服務,但是魚和熊掌不可兼得,這些良好的優點同時也帶給電腦更多的負荷,CPU各種100%燙的要命,風扇呼呼的吹。所以我們不得不對win10進行一丟丟的改造。 以下內容是我在網上尋找的資料,我稍作了整理
Linux中buff/cache記憶體佔用過高解決辦法
如何回收cache? Linux核心會在記憶體將要耗盡的時候,觸發記憶體回收的工作,以便釋放出記憶體給急需記憶體的程序使用。一般情況下,這個操作中主要的記憶體釋放都來自於對buffer/cache的釋放。尤其是被使用更多的cache空間。既然它主要用來做快
windows伺服器java專案cpu佔用較高原因分析
前言 在windows平臺上要找出到底是哪個執行緒佔用的cpu還不那麼容易,linux用top就簡單多了最後的解決方法: 1.找到java程序對應的pid。 找pid的方法是:開啟工作管理員,然後點選 “檢視” 選單,然後點選 “選擇列”,把pid勾