JVM performance profiling (有待整理)
Agenda
memory model
3 parts: heap, permgen (method area) , thread stack(pointer, local var)
heap: young and old generation ?? permanent generation
young: eden, fromspace(surviror1), tospace(surironr2)
== quoted ==
To get the clear memory diagram:http://blog.pointsoftware.ch/index.php/under-the-hood-runtime-data-areas-javas-memory-model/
http://www.yourkit.com/docs/kb/sizes.jsp
http://www.slideshare.net/gengmao/inside-the-jvm-memory-management-and-troubleshooting
PermGen
The method area is also known as the permanent generation space (PermGen). Allclass data are loaded into this memoryspace. This includes the field and method data and the code for the methods andconstructors
Heapmemory
Sinceobjects are stored in the heap part it is worth to have a closer look. The heapspace itself is again separated into several spaces:
-Young generation with eden and survivor space
-Old Generation with tenured space
Eachspace harbors objects with different life cycles:
-New/short-term objects are instantiated in theeden space.
-Survived/mid-term objects are copied from theeden space to the survivor space.
Tenured/long-term objects arecopied from the survivor to the old generation space.
== unquoted ==
jvm setting
GC algorithm: serial, ... etc, MaxNewSize, MaxSize , there is recommendation online, client side, server side and diff platform.
JavaOne: best heap percent :43% ??
tunning concerns
availablility , throughput, latency and responsiveness, memory footprint (100 txn need how many mem?), startup time
real time profiling
Remote
Add JMX parameter to bootstrap script
$JAVA_HOME/bin/java ${GC_OPTS} \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-classpath $PROJ_CLASSPATH ${BOOTSTRAPPER} ${PARAMETER}
Local
VisualVM/Jconsole is able to detect the running JAVA application process id..
http://www.gamlor.info/wordpress/2011/09/visualvm/
Eclipse for VisualVM (https://visualvm.java.net/eclipse-launcher.html)
JMX profile ?! - linux svr profile , like shell
server port number?! - need ask server team
Will it cause the app slowness? - yes, occupy CPU
post gc analysis
Enable the verbose:gc option in the bootstrap script
-verbose:gc
-Xms512m -Xmx1024m
-XX:+PrintGCTimestamps
-XX:+PrintGCDetails
-Xloggc:./${GC_LOG}
After the log file generated, you can use the tool to analyse. - GC Histogram Tool
All GC
Young GC - GC in young generation ?
Full GC -
Good tips:
Eclipse plugin center - for you to goto there via company proxy,
1. check from stackoverflow site - Add parm into eclipse.ini ;
2. disable socket proxy port
Websphere JVM profiling on app server
Ask WAS team to install a was plugin into for monitor
JVM performance profiling (有待整理)的更多相关文章
- JVM的相关知识整理和学习--(转载)
JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理.冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操 ...
- JVM垃圾回收参数说明整理
java -Xms4g -Xmx4g -Xmn3g -Xss256k -server -XX:PermSize=64M -XX:MaxPermSize=64M -XX:+UseConcMarkSwee ...
- Java中JVM相关面试题-整理
1.JVM内存模型 •程序计数器:当前线程字所执行节码的行号指示器,用于记录正在执行的虚拟机字节指令地址,线程私有. •Java虚拟机栈:存放基本数据类型,对象的引用,方法出口等,线程私有. •本地方 ...
- 我把JVM的类加载器整理了一下
前言 之前去面试的时候面试官问了我关于关于JVM性能调优的问题,由于自己之前公司的项目里自己没有接触到JVM性能调优的相关问题(感觉这些都是公司架构师考虑的问题),所有面试官问的时候自己一脸懵逼, ...
- MySQL初步笔记,有待整理
查询表纪录: select * from tb1; 插入一条记录 insert tb1 values(value1,value2,...); 修改表的默认编码: alter table tb1 ch ...
- Linux Performance Profiling & Visualization
https://github.com/figozhang/CLK/tree/master/CLK2016 http://www.linuxep.com/
- 有关 Lambda && linq练习 有待整理
1. 查询Student表中的所有记录的Sname.Ssex和Class列.(select sname,ssex,class from student) Students.Select(s=> ...
- Java Performance Optimization Tools and Techniques for Turbocharged Apps--reference
Java Performance Optimization by: Pierre-Hugues Charbonneau reference:http://refcardz.dzone.com/refc ...
- jvm系列(十):如何优化Java GC「译」
本文由CrowHawk翻译,是Java GC调优的经典佳作. 本文翻译自Sangmin Lee发表在Cubrid上的"Become a Java GC Expert"系列文章的第三 ...
随机推荐
- 【转】Oracle中dual表的用途介绍
原文:Oracle中dual表的用途介绍 [导读]dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录.我们可以用它来做很多事情. dual是一个虚拟表, ...
- HTML5 的绘图支持- canvas
Canvas HTML5新增了一个canvas元素,它是一张空画布,开发者需要通过JavaScript脚本进行绘制. 在canvas上绘图,经过如下3步 (1) 获取canvas元素对应的DOM对象. ...
- 微信分享功能引入页面-控制分享时候调用的标题、图片、url和微信按钮隐藏显示控制
1.设置分享调用的标题.图片.url预览. 2.控制右上角三个点按钮的隐藏显示(和底部工具栏的显示隐藏--未测试). 3.判断网页是否在微信中被调用. <!doctype html> &l ...
- whoosh使用笔记
1. whoosh安装 pip install Whoosh 2. 添加索引 第一步:生成schema 第二步:根据schema生成index.index就是一个目录中的一堆文件 (针对某个目录,调 ...
- 2014年度辛星html教程夏季版第一节
从今天起开始在博客园开启自己的html教程啦,先从第一节开始把,首先推荐一个网站,就是http:/www.w3cschool.cc,这是一个公开的教学网站,但是它有一个问题,那就是虽然很全面,但是不是 ...
- 【转】mybatis 获取自增id
转自:http://www.cnblogs.com/rhythmK/p/4047142.html 1.环境: mybatis : 3.2.3 spring-mybatis: 1.2.1 mysql: ...
- jedis源码阅读
package redis.clients.jedis; import java.util.ArrayList; import java.util.HashSet; import java.util. ...
- The Unified Modeling Language(UML)
统一过程建模语言UML 统一过程建模语言UML是一种标准的可视化建模语言,使用在: 业务建模和类似的过程 居于软件系统的分析.设计.和实现 UML 是一门通用语言,提供给业务分析员,软件架构师和开发 ...
- 3D触控简介:建立数字刻度应用及快速活动栏
苹果公司通过 iPhone 6s 和 6s Plus 引入了与手机互动的全新方式:按压手势.你也许知道,苹果智能手表和苹果笔记本电脑早已具备这一功能,只是名称略有不同,为力感触控(Force Touc ...
- 创建虚拟桌面的代码(重启桌面进程)(使用GetThreadDesktop,CreateDesktop,SetThreadDesktop等函数)
在upk 里挖坟得来,有兴趣查查这几个函数... #include "windows.h" #pragma comment(lib,"user32.lib") ...