国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

分析JVM GC及內(nèi)存情況的方法

mudiyouyou / 2826人閱讀

摘要:如果你下的沒有,可以自己添加一個(gè)相關(guān)資料幾個(gè)關(guān)鍵淘測(cè)試使用進(jìn)行堆轉(zhuǎn)儲(chǔ)文件分析

當(dāng)JVM響應(yīng)變慢或者停滯的時(shí)候,我們往往需要對(duì)GC和其內(nèi)存情況是進(jìn)行分析,下面列舉一些常用的分析方法和工具:

獲得GC信息的方法 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps

詳細(xì)解釋可以看JAVA SE 6 GC調(diào)優(yōu)筆記

-XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStopped

-XX:+ PrintGCApplicationConcurrentTime,打印在collection之間,程序運(yùn)行的時(shí)間

-XX:+ PrintGCApplicationStopped,打印的是collection pause的時(shí)間

下面是這兩個(gè)參數(shù)的輸出樣例:

Application time: 1.3874623 seconds
[GC [DefNew: 8064K->63K(8128K), 0.0509215 secs] 11106K->5994K(32704K), 0.0510972 secs]
Total time for which application threads were stopped: 0.0517092 seconds
Application time: 1.5225065 seconds
[GC [DefNew: 8127K->63K(8128K), 0.0432982 secs] 14058K->8273K(32704K), 0.0434172 secs]
Total time for which application threads were stopped: 0.0440447 seconds
Application time: 1.4263524 seconds
[GC [DefNew: 8127K->64K(8128K), 0.0363538 secs] 16337K->10381K(32704K), 0.0364811 secs]
Total time for which application threads were stopped: 0.0369103 seconds

從上面可以看出程序在minor collection之間跑了1.38到1.52秒,minor collection pause在.036到.051。所以minor collection的開銷大致在2.6%到3.6%.

jstat

jstat的-option參數(shù)有很多種,輸出的內(nèi)容各不相同,詳情參考官方文檔

dump內(nèi)存的方法 被動(dòng)dump

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.hprof

在OutOfMemory時(shí),輸出一個(gè)dump文件,記錄當(dāng)時(shí)的內(nèi)存快照,并把文件輸出到/tmp/dump.hprof文件

主動(dòng)dump

利用jmap把內(nèi)存dump下來,比如jmap -dump:live,format=b,file=dump.hprof

內(nèi)存dump分析工具 jhat

Java內(nèi)置工具(教程),dump文件少于1G的時(shí)候可以用這個(gè),它會(huì)起一個(gè)web服務(wù),用于查看dump信息。

需要有一臺(tái)內(nèi)存大于dump文件大小2倍的機(jī)器

HeapAnalyzer

直接分析dump并展示的客戶端(下載)

需要有一臺(tái)內(nèi)存大于dump文件大小2倍的機(jī)器,還需要能顯示出來的(桌面操作系)

mat

展示dump的客戶端(神器)(下載)(教程)

mat分為展示和分析模塊,可以用一個(gè)ParseHeapDump.sh先對(duì)dump文件分析并產(chǎn)生一堆索引文件(用服務(wù)器搞),然后再用mat的桌面應(yīng)用打開這些文件,4G內(nèi)存的機(jī)器分析8G的dump完全沒壓力。

如果你下的mat沒有ParseHeapDump.sh,可以自己添加一個(gè):

#!/bin/sh
#
# This script parses a heap dump.
# Adjust the path to java, version 5 or later, and the heap size as required.
# Suitable for 64-bit and 32-bit Java, but a 64-bit Java is required
# for larger heap sizes.
#
# Usage: ParseHeapDump.sh  [report]*
#
# The leak report has the id org.eclipse.mat.api:suspects
# The top component report has the id org.eclipse.mat.api:top_components
#

java -Xmx8192M -jar "`dirname "$0"`"/plugins/org.eclipse.equinox.launcher_1*.jar -consoleLog -application org.eclipse.mat.api.parse "$@"
相關(guān)資料

Spark on Yarn:幾個(gè)關(guān)鍵Pull Request

淘測(cè)試

使用 Eclipse Memory Analyzer 進(jìn)行堆轉(zhuǎn)儲(chǔ)文件分析

Memory Analyzer Help Documentation

Diagnosing a Garbage Collection problem

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/65032.html

相關(guān)文章

  • JVM內(nèi)存模型與運(yùn)行時(shí)數(shù)據(jù)區(qū)域

    摘要:內(nèi)存模型和運(yùn)行時(shí)數(shù)據(jù)區(qū)域的關(guān)系主內(nèi)存對(duì)應(yīng)著堆,工作內(nèi)存對(duì)應(yīng)著棧。在的單例模式中有運(yùn)用到二運(yùn)行時(shí)數(shù)據(jù)區(qū)域內(nèi)存區(qū)域因?yàn)榈倪\(yùn)行時(shí)數(shù)據(jù)區(qū)域一直在改善,所以不同版本之間會(huì)有不同。 一、java內(nèi)存模型 showImg(https://segmentfault.com/img/remote/1460000016694250?w=1810&h=941); java定義內(nèi)存模型的目的是:為了屏蔽各種...

    canopus4u 評(píng)論0 收藏0
  • 關(guān)于JVM內(nèi)存溢出原因分析解決方案探討

    摘要:內(nèi)存溢出分配的內(nèi)存空間超過系統(tǒng)內(nèi)存。內(nèi)存泄漏的原因分析由大塊組成堆,棧,本地方法棧,程序計(jì)數(shù)器,方法區(qū)。內(nèi)存溢出的原因分析內(nèi)存溢出是由于沒被引用的對(duì)象垃圾過多造成沒有及時(shí)回收,造成的內(nèi)存溢出。小結(jié)棧內(nèi)存溢出程序所要求的棧深度過大導(dǎo)致。 showImg(https://segmentfault.com/img/bVbweuq?w=563&h=300); 前言:JVM中除了程序計(jì)數(shù)器,其他...

    xuexiangjys 評(píng)論0 收藏0
  • [譯]GC專家系列2:Java 垃圾回收監(jiān)控

    摘要:原文鏈接這是專家系列文章的第二篇。運(yùn)行在本地虛擬機(jī)上的應(yīng)用的又稱為,通常與相同。性能數(shù)據(jù)需要持續(xù)觀察,因此在運(yùn)行時(shí)需要定時(shí)輸出的監(jiān)控信息。新生代容量的統(tǒng)計(jì)信息。是提供的一個(gè)式的圖表監(jiān)控工具。 原文鏈接:http://www.cubrid.org/blog/dev-platform/how-to-monitor-java-garbage-collection/ 這是GC專家系列文章的第二...

    yiliang 評(píng)論0 收藏0
  • jvm調(diào)優(yōu)

    摘要:一內(nèi)存調(diào)優(yōu)主要的目的是減小的頻率和的次數(shù)。調(diào)優(yōu)工具之主要用來輸出中運(yùn)行的進(jìn)程狀態(tài)信息。調(diào)優(yōu)工具之和用來查看堆內(nèi)存使用狀況,一般結(jié)合使用。 一、jvm內(nèi)存調(diào)優(yōu) 主要的...

    snowLu 評(píng)論0 收藏0
  • 《深入理解Java虛擬機(jī)》(六)堆內(nèi)存使用分析,垃圾收集器 GC 日志解讀

    摘要:堆內(nèi)存使用分析,垃圾收集器日志解讀重要的東東在中,對(duì)象實(shí)例都是在堆上創(chuàng)建。機(jī)制是由提供,用來清理需要清除的對(duì)象,回收堆內(nèi)存。在中,是由一個(gè)被稱為垃圾回收器的守護(hù)線程執(zhí)行的。 堆內(nèi)存使用分析,垃圾收集器 GC 日志解讀 重要的東東 在Java中,對(duì)象實(shí)例都是在堆上創(chuàng)建。一些類信息,常量,靜態(tài)變量等存儲(chǔ)在方法區(qū)。堆和方法區(qū)都是線程共享的。 GC機(jī)制是由JVM提供,用來清理需要清除的對(duì)象,...

    CODING 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<