日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

Java常用命令及Java Dump

發(fā)布時(shí)間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java常用命令及Java Dump 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

線程Dump,包含所有線程的運(yùn)行狀態(tài)。純文本格式。
堆Dump,包含線程Dump,幵包含所有堆對(duì)象的狀態(tài)。二進(jìn)制格式。

Java Dump方法
1.使用Java虛擬機(jī)制作Dump
指示虛擬機(jī)在發(fā)生內(nèi)存不足錯(cuò)誤時(shí),自動(dòng)生成堆Dump
-XX:+HeapDumpOnOutOfMemoryError

2.使用圖形化工具制作Dump
使用JDK(1.6)自帶的工具:Java VisualVM。


3.使用命令行制作Dump
jstack:打印線程的棧信息,制作線程Dump。
jmap:打印內(nèi)存映射,制作堆Dump。

步驟:
檢查虛擬機(jī)版本(java -version)
找出目標(biāo)Java應(yīng)用的進(jìn)程ID(jps)
使用jstack命令制作線程Dump? Linux環(huán)境下使用kill命令制作線程Dump
使用jmap命令制作堆Dump


都位于jdk的bin目錄下

1.jps顯示當(dāng)前系統(tǒng)的java進(jìn)程情況,及其id號(hào)

?jps相當(dāng)于Solaris進(jìn)程工具ps。不象”pgrep java”或”ps -ef grep java”,jps并不使用應(yīng)用程序名來(lái)查找JVM實(shí)例。因此,它查找所有的Java應(yīng)用程序,包括即使沒(méi)有使用java執(zhí)行體的那種(例如,定制的啟動(dòng) 器)。另外,jps僅查找當(dāng)前用戶的Java進(jìn)程,而不是當(dāng)前系統(tǒng)中的所有進(jìn)程。


2.jstack用于生成java虛擬機(jī)當(dāng)前時(shí)刻的線程快照。

線程快照是當(dāng)前java虛擬機(jī)內(nèi)每一條線程正在執(zhí)行的方法堆棧的集合,生成線程快照的主要目的是定位線程出現(xiàn)長(zhǎng)時(shí)間停頓的原因,如線程間死鎖、死循環(huán)、請(qǐng)求外部資源導(dǎo)致的長(zhǎng)時(shí)間等待等。 線程出現(xiàn)停頓的時(shí)候通過(guò)jstack來(lái)查看各個(gè)線程的調(diào)用堆棧,就可以知道沒(méi)有響應(yīng)的線程到底在后臺(tái)做什么事情,或者等待什么資源。 如果java程序崩潰生成core文件,jstack工具可以用來(lái)獲得core文件的java stack和native stack的信息,從而可以輕松地知道java程序是如何崩潰和在程序何處發(fā)生問(wèn)題。另外,jstack工具還可以附屬到正在運(yùn)行的java程序中,看到當(dāng)時(shí)運(yùn)行的java程序的java stack和native stack的信息, 如果現(xiàn)在運(yùn)行的java程序呈現(xiàn)hung的狀態(tài),jstack是非常有用的。

http://www.hollischuang.com/archives/110


3.jmap是JDK自帶的工具軟件,主要用于打印指定Java進(jìn)程(或核心文件、遠(yuǎn)程調(diào)試服務(wù)器)的共享對(duì)象內(nèi)存映射或堆內(nèi)存細(xì)節(jié)。可以使用jmap生成Heap Dump。

常見(jiàn)內(nèi)存錯(cuò)誤:
outOfMemoryError 年老代內(nèi)存不足。
outOfMemoryError:PermGen Space 永久代內(nèi)存不足。
outOfMemoryError:GC overhead limit exceed 垃圾回收時(shí)間占用系統(tǒng)運(yùn)行時(shí)間的98%或以上。

http://www.hollischuang.com/archives/303


4.jstat(JVM Statistics Monitoring Tool)是用于監(jiān)控虛擬機(jī)各種運(yùn)行狀態(tài)信息的命令行工具。他可以顯示本地或遠(yuǎn)程虛擬機(jī)進(jìn)程中的類裝載、內(nèi)存、垃圾收集、JIT編譯等運(yùn)行數(shù)據(jù),在沒(méi)有GUI圖形的服務(wù)器上,它是運(yùn)行期定位虛擬機(jī)性能問(wèn)題的首選工具。


5.jhat(Java Heap Analysis Tool),是一個(gè)用來(lái)分析java的堆情況的命令。之前的文章講到過(guò),使用jmap可以生成Java堆的Dump文件。生成dump文件之后就可以用jhat命令,將dump文件轉(zhuǎn)成html的形式,然后通過(guò)http訪問(wèn)可以查看堆情況。jhat命令解析會(huì)Java堆dump并啟動(dòng)一個(gè)web服務(wù)器,然后就可以在瀏覽器中查看堆的dump文件了。

jhat還提供了一種對(duì)象查詢語(yǔ)言(Object Query Language),OQL有點(diǎn)類似SQL,可以用來(lái)查詢。


6.javap是jdk自帶的一個(gè)工具,可以對(duì)代碼反編譯,可以查看java編譯器生成的字節(jié)碼。

http://www.hollischuang.com/archives/1107

https://www.cnblogs.com/frinder6/p/5440173.html


參考:http://www.hollischuang.com/archives/308

http://www.importnew.com/18398.html


一次服務(wù)大量超時(shí)的java排查過(guò)程經(jīng)驗(yàn)

Java應(yīng)用調(diào)試?yán)鳌狟Trace教程

總結(jié)

以上是生活随笔為你收集整理的Java常用命令及Java Dump的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。