摘要:系列垃圾回收基礎(chǔ)的編譯策略的三大基礎(chǔ)算法的三大高級(jí)算法策略的評(píng)價(jià)指標(biāo)信息查看通用日志解讀的數(shù)據(jù)結(jié)構(gòu)類初始化順序?qū)ο蠼Y(jié)構(gòu)及大小計(jì)算的類加載機(jī)制對(duì)象分配簡要流程年老代過大有什么影響空間溢出實(shí)例關(guān)于線程與序本文主要講述如何查看應(yīng)用的信息。
jvm系列
垃圾回收基礎(chǔ)
JVM的編譯策略
GC的三大基礎(chǔ)算法
GC的三大高級(jí)算法
GC策略的評(píng)價(jià)指標(biāo)
JVM信息查看
GC通用日志解讀
jvm的card table數(shù)據(jù)結(jié)構(gòu)
Java類初始化順序
Java對(duì)象結(jié)構(gòu)及大小計(jì)算
Java的類加載機(jī)制
Java對(duì)象分配簡要流程
年老代過大有什么影響
Survivor空間溢出實(shí)例
關(guān)于Object=null
Java線程與Xss
序本文主要講述如何查看java應(yīng)用的jvm信息。
1、查看所有參數(shù) jinfo -flags pidJava -XX:+PrintCommandLineFlags 這個(gè)參數(shù)的作用是顯示出VM初始化完畢后所有跟最初的默認(rèn)值不同的參數(shù)及它們的值。 (JDK5以上支持)
-XX:+PrintFlagsFinal顯示所有可設(shè)置的參數(shù)及它們的值( JDK 6 update 21開始才可以用),默認(rèn)是不包括diagnostic或experimental系的。要在-XX:+PrintFlagsFinal的輸出里看到這兩種參數(shù)的信息,分別需要顯式指定-XX:+UnlockDiagnosticVMOptions / -XX:+UnlockExperimentalVMOptions
-XX:+PrintFlagsInitial看下所有XX參數(shù)的默認(rèn)值,也可以通過-XX:+PrintFlagsFinal進(jìn)行對(duì)比出修改過的參數(shù),當(dāng)然通過-XX:+PrintCommandLineFlags就可以自動(dòng)顯示出修改過的值
jinfo -flags pid
[xixicat@cloud01 ~]$ jps 9275 Jps 22855 start.jar 22869 XmlConfiguration 20967 Application [xixicat@cloud01 ~]$ jinfo -flags 22869 Attaching to process ID 22869, please wait... Debugger attached successfully. Server compiler detected. JVM version is 23.21-b01 -javaagent:/opt/xixicat/apps/lib/jolokia-jvm-1.1.0-agent.jar=port=23061 -Xloggc:/var/xixicat/logs/app.gc.log.201504301631 -XX:ErrorFile=/var/xixicat/logs/app.vmerr.log.201504301631 -XX:HeapDumpPath=/var/xixicat/logs/app.heaperr.log.201504301631 -Xmx5g -Xms5g -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintCommandLineFlags -XX:+PrintAdaptiveSizePolicy -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:StringTableSize=49999 -Djetty.home=/opt/xixicat/apps/server/jetty-distribution-8.1.9.v20130131 -Dapp.port=8061 -Dmedis_environment=online -Dcore.step=app -DSTOP.PORT=38061 -Djetty.port=8061 -Dcom.sun.management.jmxremote.authenticate=false -Dapp.logdir=/var/xixicat/logs -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dapp.ip=10.64.28.207 -Dapp.context -Dcom.sun.management.jmxremote.ssl=false -Djetty.context -Djava.io.tmpdir=/tmp -Djetty.host=cloud01 -Djava.net.preferIPv6Addresses=false -DSTOP.KEY=stop_app -Dcore.zookeeper=127.0.0.1:9331 -Djetty.logs=/var/xixicat/logs -Dapp.workdir=/opt/xixicat/apps/app/work -Dapp.key=app -Dfile.encoding=UTF-8 -Dapp.host=cloud01 -Duser.timezone=GMT+08 -Djetty.appkey=app -DAsyncLogger.WaitStrategy=Block -Dcom.sun.management.jmxremote.port=8199 -Djetty.home=/opt/xixicat/apps/server/jetty-distribution-8.1.9.v20130131 -Denvironment=online2、查看可用jinfo -flag修改的Java參數(shù)
java -XX:+PrintFlagsFinal -version |grep manageable
通過選項(xiàng)-XX:+PrintFlagsFinal可以列出所有的JVM flag,而其中的標(biāo)注為manageable 的flag則是值得我們關(guān)注的部分。這些flag可通過JDK management interface(-XX:+PrintFlagsFinal)動(dòng)態(tài)修改。
-XX:+PrintGCDetails
jinfo -flag -PrintGCDetails 12278
3、jmap -heap pid 查看目前堆情況[xixicat@cloud01 ~]$ jmap -heap 22869 Attaching to process ID 22869, please wait... Debugger attached successfully. Server compiler detected. JVM version is 23.21-b01 using thread-local object allocation. Garbage-First (G1) GC with 4 thread(s) Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 5368709120 (5120.0MB) NewSize = 1363144 (1.2999954223632812MB) MaxNewSize = 17592186044415 MB OldSize = 5452592 (5.1999969482421875MB) NewRatio = 2 SurvivorRatio = 8 PermSize = 20971520 (20.0MB) MaxPermSize = 268435456 (256.0MB) G1HeapRegionSize = 2097152 (2.0MB) Heap Usage: G1 Heap: regions = 2560 capacity = 5368709120 (5120.0MB) used = 3826721792 (3649.4462890625MB) free = 1541987328 (1470.5537109375MB) 71.27824783325195% used G1 Young Generation: Eden Space: regions = 1068 capacity = 2808086528 (2678.0MB) used = 2239758336 (2136.0MB) free = 568328192 (542.0MB) 79.76101568334578% used Survivor Space: regions = 29 capacity = 60817408 (58.0MB) used = 60817408 (58.0MB) free = 0 (0.0MB) 100.0% used G1 Old Generation: regions = 1000 capacity = 2499805184 (2384.0MB) used = 1524048896 (1453.4462890625MB) free = 975756288 (930.5537109375MB) 60.96670675597735% used Perm Generation: capacity = 171966464 (164.0MB) used = 170752872 (162.8426284790039MB) free = 1213592 (1.1573715209960938MB) 99.29428565792921% used 48213 interned Strings occupying 5246936 bytes.4、jmap -histo:live pid | head -7
查看對(duì)象分布
5、jcmd pid VM.flags[xixicat@cloud01 ~]$ jcmd 15308 VM.flags 15308: -XX:+DisableExplicitGC -XX:ErrorFile=/var/xixicat/logs/app.vmerr.log.201505071655 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/xixicat/logs/app.heaperr.log.201505071655 -XX:InitialHeapSize=5368709120 -XX:+ManagementServer -XX:MaxGCPauseMillis=100 -XX:MaxHeapSize=5368709120 -XX:MaxPermSize=268435456 -XX:+PrintAdaptiveSizePolicy -XX:+PrintCommandLineFlags -XX:+PrintGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:StringTableSize=49999 -XX:+UnlockExperimentalVMOptions -XX:+UseCompressedOops -XX:+UseG1GC
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/65623.html
摘要:一內(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) 主要的...
面試官:今天要不來聊聊JVM調(diào)優(yōu)相關(guān)的吧?面試官:你曾經(jīng)在生產(chǎn)環(huán)境下有過調(diào)優(yōu)JVM的經(jīng)歷嗎?候選者:沒有面試官:...候選者:嗯...是這樣的,我們一般優(yōu)化系統(tǒng)的思路是這樣的候選者:1. 一般來說關(guān)系型數(shù)據(jù)庫是先到瓶頸,首先排查是否為數(shù)據(jù)庫的問題候選者:(這個(gè)過程中就需要評(píng)估自己建的索引是否合理、是否需要引入分布式緩存、是否需要分庫分表等等)候選者:2. 然后,我們會(huì)考慮是否需要擴(kuò)容(橫向和縱向都...
摘要:一說明當(dāng)虛擬機(jī)申請不到內(nèi)存空間的時(shí)候,會(huì)報(bào)堆內(nèi)存溢出。記錄次數(shù)不讓進(jìn)程結(jié)束,便于使用分析工具來查看內(nèi)存情況使用的版本報(bào)錯(cuò)信息運(yùn)行結(jié)果表明,運(yùn)行到次時(shí),出現(xiàn)了堆內(nèi)存溢出。 一、說明 當(dāng)虛擬機(jī)申請不到內(nèi)存空間的時(shí)候,會(huì)報(bào)堆內(nèi)存溢出: OutOfMemoryError:java heap space。 常見的原因:http://outofmemory.cn/c/java-... 我測試到時(shí)...
摘要:打印等待回收對(duì)象的信息可以看到當(dāng)前隊(duì)列中并沒有等待線程執(zhí)行方法的對(duì)象。一般情況,會(huì)到客戶端用工具來分析用于生成虛擬機(jī)當(dāng)前時(shí)刻的線程快照。 運(yùn)用jvm自帶的命令可以方便的在生產(chǎn)監(jiān)控和打印堆棧的日志信息幫忙我們來定位問題!雖然jvm調(diào)優(yōu)成熟的工具已經(jīng)有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生產(chǎn)環(huán)境出現(xiàn)問題的時(shí)候,一方面工具的使...
摘要:虛擬機(jī)性能監(jiān)控與故障處理工具詳解概述本文參考的是周志明的深入理解虛擬機(jī)第四章,為了整理思路,簡單記錄一下,方便后期查閱。虛擬機(jī)堆轉(zhuǎn)儲(chǔ)快照分析工具功能用于分析生成的。 虛擬機(jī)性能監(jiān)控與故障處理工具 詳解 4.1 概述 本文參考的是周志明的 《深入理解Java虛擬機(jī)》 第四章 ,為了整理思路,簡單記錄一下,方便后期查閱。 JDK本身提供了很多方便的JVM性能調(diào)優(yōu)監(jiān)控工具,除了集成式的Vis...
閱讀 961·2021-11-24 09:39
閱讀 3383·2021-10-27 14:20
閱讀 2322·2019-08-30 14:08
閱讀 3361·2019-08-29 16:34
閱讀 2176·2019-08-26 12:14
閱讀 2104·2019-08-26 11:54
閱讀 2771·2019-08-26 11:44
閱讀 2474·2019-08-26 11:38