導航:首頁 > 編程語言 > jstack保存

jstack保存

發布時間:2025-01-27 22:18:46

⑴ 通過top和jstack確定哪些線程耗盡了CPU這些線程在做什麼

打開終端,使用jstack命令輸出這一時刻的線程棧,保存到文件,命名為jstack.log。
注意:輸出線程棧和保存top命令快照盡量同時進行。
英特爾最新推出了第六代酷睿產品,採用全新一代的架構,性能提示、功能降低、續航更加長久、無論辦公學習、暢玩游戲或者觀看超高清音箱播放,均得心應手,您也可以試試。

⑵ 通過top和jstack確定哪些線程耗盡了CPU這些線程在做什麼

背景有時,線上集群load會突然飆升,無法響應正常請求。那麼引起load飆升的線程專究竟在做什屬么?哪些線程霸佔了CPU?可以通過top和jstack命令進行定位。2. 定位步驟1. 使用終端1進入目標機器,執行top命令,默認是進程視圖,其中PID是進程號,截圖如下:在這里,我們只能看到java進程佔用CPU達到115%,那麼究竟是那些線程非常耗CPU呢?2. 由於我們要看到線程,在終端1,按下「H」鍵或者「shift+h」,top視圖會切換到線程視圖,其中PID是線程號,截圖如下:可以發現紅框內的線程的CPU使用率非常高,佔用CPU時間達到1秒左右,顯然不正常,但是這些線程在做什麼?3. 打開終端2,使用jstack命令輸出這一時刻的線程棧,保存到文件,命名為jstack.log。注意:輸出線程棧和保存top命令快照盡量同時進行通過top和jstack確定哪些線程耗盡了CPU?這些線程在做什麼

⑶ 如何查看unix 的java內存使用情況

jmap (linux下特有,也是很常用的一個命令)
觀察運行中的jvm物理內存的佔用情況。
參數如下:
-heap :列印jvm heap的情況
-histo: 列印jvm heap的直方圖。其輸出信息包括類名,對象數量,對象佔用大小。
-histo:live : 同上,但是只答應存活對象的情況
-permstat: 列印permanent generation heap情況
命令使用:
jmap -heap 3409
可以觀察到New Generation(Eden Space,From Space,To Space),tenured generation,Perm Generation的內存使用情況
輸出內容:
jmap -histo 3409 | jmap -histo:live 3409
可以觀察heap中所有對象的情況(heap中所有生存的對象的情況)。包括對象數量和所佔空間大小。
輸出內容:
寫個腳本,可以很快把佔用heap最大的對象找出來,對付內存泄漏特別有效。
如果結果很多,可以用以下命令輸出到文本文件。
jmap -histo 3409 | jmap -histo:live 3409 > a.txt
jinfo:可以輸出並修改運行時的java 進程的opts。
jps:與unix上的ps類似,用來顯示本地的java進程,可以查看本地運行著幾個java程序,並顯示他們的進程號。
jstat:一個極強的監視VM內存工具。可以用來監視VM內存內的各種堆和非堆的大小及其內存使用量。
jmap:列印出某個java進程(使用pid)內存內的所有'對象'的情況(如:產生那些對象,及其數量)。
jconsole:一個java GUI監視工具,可以以圖表化的形式顯示各種數據。並可通過遠程連接監視遠程的伺服器VM。
詳細:在使用這些工具前,先用JPS命令獲取當前的每個JVM進程號,然後選擇要查看的JVM。
jstat工具特別強大,有眾多的可選項,詳細查看堆內各個部分的使用量,以及載入類的數量。使用時,需加上查看進程的進程id,和所選參數。以下詳細介紹各個參數的意義。
jstat -class pid:顯示載入class的數量,及所佔空間等信息。
jstat -compiler pid:顯示VM實時編譯的數量等信息。
jstat -gc pid:可以顯示gc的信息,查看gc的次數,及時間。其中最後五項,分別是young gc的次數,young gc的時間,full gc的次數,full gc的時間,gc的總時間。
jstat -gccapacity:可以顯示,VM內存中三代(young,old,perm)對象的使用和佔用大小,如:PGCMN顯示的是最小perm的內存使用量,PGCMX顯示的是perm的內存最大使用量,PGC是當前新生成的perm內存佔用量,PC是但前perm內存佔用量。其他的可以根據這個類推, OC是old內純的佔用量。
jstat -gcnew pid:new對象的信息。
jstat -gcnewcapacity pid:new對象的信息及其佔用量。
jstat -gcold pid:old對象的信息。
jstat -gcoldcapacity pid:old對象的信息及其佔用量。
jstat -gcpermcapacity pid: perm對象的信息及其佔用量。
jstat -util pid:統計gc信息統計。
jstat -printcompilation pid:當前VM執行的信息。
除了以上一個參數外,還可以同時加上 兩個數字,如:jstat -printcompilation 3024 250 6是每250毫秒列印一次,一共列印6次,還可以加上-h3每三行顯示一下標題。
jmap是一個可以輸出所有內存中對象的工具,甚至可以將VM 中的heap,以二進制輸出成文本。
命令:jmap -mp:format=b,file=heap.bin
file:保存路徑及文件名
pid:進程編號
?jmap -histo:live pid| less :堆中活動的對象以及大小
?jmap -heap pid : 查看堆的使用狀況信息
jinfo:的用處比較簡單,就是能輸出並修改運行時的java進程的運行參數。用法是jinfo -opt pid 如:查看2788的MaxPerm大小可以用 jinfo -flag MaxPermSize 2788。
jconsole是一個用java寫的GUI程序,用來監控VM,並可監控遠程的VM,非常易用,而且功能非常強。使用方法:命令行里打 jconsole,選則進程就可以了。
JConsole中關於內存分區的說明。
Eden Space (heap): 內存最初從這個線程池分配給大部分對象。
Survivor Space (heap):用於保存在eden space內存池中經過垃圾回收後沒有被回收的對象。
Tenured Generation (heap):用於保持已經在 survivor space內存池中存在了一段時間的對象。
Permanent Generation (non-heap): 保存虛擬機自己的靜態(refective)數據,例如類(class)和方法(method)對象。Java虛擬機共享這些類數據。這個區域被分割為只讀的和只寫的,
Code Cache (non-heap):HotSpot Java虛擬機包括一個用於編譯和保存本地代碼(native code)的內存,叫做「代碼緩存區」(code cache)
?jstack ( 查看jvm線程運行狀態,是否有死鎖現象等等信息) : jstack pid : thread mp
?jstat -gcutil pid 1000 100 : 1000ms統計一次gc情況統計100次;
另外推薦一款查看jmap mp 的內存對象工具 MemoryAnalyzer

⑷ 重點問題!CPU利用率過高排查思路|原創

面對CPU利用率過高的問題,排查與解決步驟如下:

首先,當線上服務遭遇CPU利用率異常增高,首要目標應是盡快恢復服務的可用性,減少對業務的影響。

通常,我們通過監控系統收到伺服器負載異常的告警,其中CPU使用率過高是常見問題。可能的原因包括業務代碼死循環、垃圾回收(GC)頻繁或線程阻塞等。

在測試環境模擬CPU利用率過高的情況時,可以使用以下步驟以創建死循環示例:

1.創建並編輯名為Test.java的文件。

輸入如下代碼並保存:

代碼示例

通過命令行編譯生成Test.class文件,然後執行測試文件,即可模擬CPU利用率過高的場景。

排查步驟包括:

1.使用top命令查看佔用CPU最多的Java進程。

2.根據進程ID(PID)找到對應CPU佔用最高的Java進程。

3.將10進制的線程ID轉換為16進制。

4.使用jstack命令獲取對應問題現場的堆棧信息。

通過上述步驟,可以發現問題線程處於runnable狀態,並定位到問題代碼所在位置,如Test.java:7,發現死循環。

針對不同情況,解決方法各異:

1.當業務線程出現大量阻塞,如synchronized鎖,通過查找狀態為BLOCKED的線程並分析堆棧信息。

2.排查網路IO或磁碟IO阻塞問題時,同樣應用上述方法分析。

3.對於頻繁的GC線程導致的高CPU利用率,線程標識為GC task thread。這需要專門分析,可能涉及年輕代設置不合理、大對象分配過多或old區存活對象過多等問題。

閱讀全文

與jstack保存相關的資料

熱點內容
jquery判斷數據是否是json 瀏覽:233
蘋果怎麼設置使用app時間 瀏覽:247
excel打開幾個文件如何顯示在上面 瀏覽:181
word文件空格上的文字如何刪掉 瀏覽:215
pdf怎麼復制到文件夾中 瀏覽:429
三星s5怎麼設置4g網路全是英文 瀏覽:720
語言地區代碼 瀏覽:103
js調用後台java方法 瀏覽:473
js復選框選中顯示 瀏覽:111
Tcl手機網路不可用 瀏覽:52
描述文件用刪嗎 瀏覽:626
iphoneid鎖關閉是什麼意思 瀏覽:925
網路科技公司如何做賬 瀏覽:511
操作系統課程設計java 瀏覽:682
一個木函保存的音頻在哪個文件裡面 瀏覽:580
安卓手機如何打開dwg文件瀏覽器cad 瀏覽:335
修改wifi密碼後沒有網 瀏覽:645
如何修改圖片的文件大小 瀏覽:130
電腦版學而思app的編程在哪裡 瀏覽:85
linux進程相關命令 瀏覽:554

友情鏈接