1. 程式人生 > >使用jstack檢視最耗CPU的java的執行緒

使用jstack檢視最耗CPU的java的執行緒

(1)首先第一步通過top -Hp proccessId,看對應的java程序中那些執行緒正在執行,及佔用的cpu和memory的比例,如下圖所示(PID列即為執行緒id)

查    

(2) printf "%x\n" PID 獲取對應的pid的16進位制, 如下所示:

[[email protected] DEV]# printf "%x\n" 9513
2529
   

(3) jstack proccessId | grep 2529,所示結果如下:

    "DubboResponseTimeoutScanTimer" daemon prio=10 tid=0x00007f90c8005000 nid=0x2529 waiting on condition [0x00007f91a9717000]

表示DubboResponseTimeoutScanTimer類正在waiting on condition(等待資源就緒)

相關推薦

使用jstack檢視CPU的java的執行

(1)首先第一步通過top -Hp proccessId,看對應的java程序中那些執行緒正在執行,及佔用的cpu和memory的比例,如下圖所示(PID列即為執行緒id) 查     (2) printf "%x\n" PID 獲取對應的pid的16進位制, 如下所示:

jstack-檢視Java程序的執行堆疊資訊,鎖定高消耗資原始碼

gracetest jstack-檢視Java程序的執行緒堆疊資訊,鎖定高消耗資原始碼  jstack主要用來檢視某個Java程序內的執行緒堆疊資訊。語法格式如下: jstack [option] pid jstack [option] 

使用jstack檢視當前程序全部執行的狀態

1.使用jps 命令找到程序的PID $ jps 225648 Jps 5268 127284 Launcher 226980 Launcher 227624 ConcurrencyTest 2.使用

top、ps命令檢視程序中的執行方法

方法一:PS ps -a顯示所有程序pid,“-T”選項可以開啟執行緒檢視。 eg: ps -aT 顯示所有執行緒 方法二: Top top用於實時檢視各個執行緒情況,用top命令的“-H”選項,該選項會列出所有Linux執行緒。 eg1. top -H 所有執行緒 eg2.

linux檢視是否開啟超執行

1.檢視物理CPU個數 #cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l 執行結果:1 2.檢視邏輯CPU個數 #cat /proc/cpuinfo |grep "processor"|wc -l 執行結果:1

winform等待視窗之簡單使用執行實現

如圖:需要執行某個等待方法彈出等待視窗,方法執行完畢自動關閉等待視窗 System.Threading.Thread th; th = new Thread(new ThreadStart(delegate ()

如何定位消耗CPU多的執行

之前有朋友反饋說發的內容希望有個梯度,逐步加深,前面發了幾篇關於jvm原始碼分析的文章,可能我覺得我已經把內容寫得淺顯易懂了,但是對於某些沒怎麼接觸的同學來說還是比較難理解,這個我以後慢慢改進吧,今天發篇輕鬆點的文章,可能大家在工作過程中也會可能碰到類似的問題,或許有經驗的同學看到這個題目就

python只使用Queue和Thread自己實現一個簡單的執行

        我的思路就是就是寫一個TifCutting類繼承自Thread,這個類裡有個屬性Queue;有一個addTask新增任務的方法,這個方法是把需要執行的函式放到Queue裡;因為繼承自Thread類,一定有一個重寫的run方法,這個方法是從自己的Queue屬性裡

大程序執行數 連線數

======================== ========================================================= =====================================================

iis大併發連線數、佇列長度、大併發執行數、大工作程序數

最大併發連線數:  1、影響因素: a.網站html請求,html中的圖片資源,html中的指令碼資源,其他需要連線下載的資源等等,任何一個資源的請求即一次連線(雖然有的資源請求連線響應很快) b.如果網頁採用框架(框架內部巢狀網頁請求),那麼一個框架即一次連線 c.

Linux檢視某個程序的執行

執行緒是現代作業系統上進行並行執行的一個流行的程式設計方面的抽象概念。當一個程式內有多個執行緒被叉分出用以執行多個流時,這些執行緒就會在它們之間共享特定的資源(如,記憶體地址空間、開啟的檔案),以使叉分開銷最小化,並避免大量高成本的IPC(程序間通訊)通道。這些功能讓執行緒在

檢視某個埠被執行佔用方法

Windows上開啟coturn服務時,偶爾會出現埠被佔用異常。下面介紹如何根據埠號,查詢被佔用執行緒的方法。 1、開啟cmd視窗 開始->執行->cmd。 2、輸入netstat -ano命令 列出所有被佔用埠資訊。(選做,僅供參考) 3、輸入netsta

Windows執行(一)簡單的執行建立

一段最簡單的執行緒建立程式碼如下: #include <stdio.h> #include <Windows.h> DWORD WINAPI ThreadFun(LPVOID pM) { printf("子執行緒的執行緒ID號為:%d\n子執行緒輸出

JVM調優(9)jstack定位死迴圈、執行阻塞、死鎖等問題

當我們執行java程式時,可能會出現死迴圈,IO阻塞,執行緒死鎖等問題,導致程式無法進行下去,但從程式碼上有無法確定問題出現的具體原因或者地方。可以使用JDK自帶的jstack工具去簡單定位; 死迴圈 程式如下: /** * @Author Ralph * 死迴圈定位

VC在debug狀態下檢視當前有多少執行執行

我使用boost::thread_group::size()函式,想得到當前時刻boost::thread_group有多少執行緒在執行,結果發現該函式不能準確的顯示當前boost::thread_group裡執行的執行緒數。就只好打個斷點,然後用VC檢視還有多少執行緒在運

java執行池的核心執行數與大的執行數的區別,飽和策略

1、當提交一個新任務到執行緒池時首先執行緒池判斷基本執行緒池(corePoolSize)是否已滿?沒滿,建立一個工作執行緒來執行任務。滿了,則進入下個流程;其次執行緒池判斷工作佇列(workQueue)是否已滿?沒滿,則將新提交的任務儲存在工作佇列裡。滿了,則進入下個流程;最

Linux 如何檢視程序的各執行的CPU佔用

1 先用ps + grep找出該死的程序pid,比如 30420 2 top -H -p 30420,(top然後shift+H可以看出某個執行緒)所有該程序的執行緒都列出來了。看看哪個執行緒pid佔用最多 3. sudo pstack  tid 檢視主要是哪裡在佔用cpu

Linux下檢視消耗CPU的執行

javaweb 專案部署後發現很耗cpu,需要查出問題所在 寫個測試程式,記相關步驟: 故意寫個死迴圈 public class TestCpu { public static void main(String[] args) { while (t

【多執行檢視JVM中的執行名(ThreadGroup)

ThreadGroup類的常用方法activeCount()——返回此執行緒組中活動執行緒的估計數activeGroupCount()——返回此執行緒組中活動執行緒組的估計數enumerate(Thread[] list,boolean recurse)——把此執行緒組中所有

java實用newFixedThreadPool執行

##程式碼示例 MyTest.java package myUtil.myUtil; import java.util.concurrent.ExecutorService; import jav