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"系列文章的第三 ...
随机推荐
- JS 页面加载触发事件 document.ready和onload的区别(转)
原博地址:http://blog.163.com/zhaoyanping_1125/blog/static/20132915320111129113723710/ * document.ready和o ...
- TDirectory.GetDirectoryRoot获取指定目录的根目录
使用函数: System.IOUtils.TDirectory.GetDirectoryRoot 函数定义: class function GetDirectoryRoot(const Path: s ...
- JavaScript模块化开发库之SeaJS
SeaJS是一个很好的前端模块化开发库,源码不到1500行,压缩后才4k,质量极高.
- wpf+xml实现的一个随机生成早晚餐的小demo
话说每到吃完的时间就发愁,真的不知道该吃什么,然后就想到做一个生成吃什么的小软件,既然这个软件如此的简单,就打算用wpf开发吧,也不用数据库了,直接保存在xml中就可以了 程序整体结构如下图 首先我写 ...
- RegexKitLite 使用详解
1.去RegexKitLite下载类库,解压出来会有一个例子包及2个文件,其实用到的就这2个文件,添加到工程中. 2.工程中添加libicucore.dylib frameworks. 友情提醒:一般 ...
- iOS项目架构文档
设计的项目架构主要引用MVVM+MVC架构,并以功能模块分级.以下为目录结构. 初级目录: 我们只需要关注SGZH文件夹下的目录,其他为Xcode管理的目录.可以看到此目录为项目初级目录,我们开发过程 ...
- MySQL简单使用
1.启动MySQL服务器实际上上篇已讲到如何启动MySQL.两种方法:一是用winmysqladmin,如果机器启动时已自动运行,则可直接进入下一步操作.二是在DOS方式下运行 d:/mysql/bi ...
- delphi xe5 android 调用照相机获取拍的照片
本篇文章我们来看一下delphi xe5 在android程序里怎样启动照相机并获取所拍的照片,本代码取自xe自带打sample,路径为: C:\Users\Public\Documents\RAD ...
- Discuz! 7.2 SQL注入exp
已经有人写出一些工具了,但是感觉不怎么好用,就自己写了个. 参数:1.可直接getshell2.爆管理账号密码3.爆表前缀如果表前缀不是默认的cdb_ 只需更改代码中的 $table即可,方便快捷. ...
- windows远程桌面连接配置
我的电脑 -> 属性 -> 远程 把两个checkbox勾上 运行(win + r) -> 输入secpol.msc回车 -> 找到本地策略 -> 安全选项 ->账 ...