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 (有待整理)的更多相关文章

  1. JVM的相关知识整理和学习--(转载)

    JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理.冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操 ...

  2. JVM垃圾回收参数说明整理

    java -Xms4g -Xmx4g -Xmn3g -Xss256k -server -XX:PermSize=64M -XX:MaxPermSize=64M -XX:+UseConcMarkSwee ...

  3. Java中JVM相关面试题-整理

    1.JVM内存模型 •程序计数器:当前线程字所执行节码的行号指示器,用于记录正在执行的虚拟机字节指令地址,线程私有. •Java虚拟机栈:存放基本数据类型,对象的引用,方法出口等,线程私有. •本地方 ...

  4. 我把JVM的类加载器整理了一下

    前言 ​ 之前去面试的时候面试官问了我关于关于JVM性能调优的问题,由于自己之前公司的项目里自己没有接触到JVM性能调优的相关问题(感觉这些都是公司架构师考虑的问题),所有面试官问的时候自己一脸懵逼, ...

  5. MySQL初步笔记,有待整理

     查询表纪录: select * from tb1; 插入一条记录 insert tb1 values(value1,value2,...); 修改表的默认编码: alter table tb1 ch ...

  6. Linux Performance Profiling & Visualization

    https://github.com/figozhang/CLK/tree/master/CLK2016 http://www.linuxep.com/

  7. 有关 Lambda && linq练习 有待整理

    1. 查询Student表中的所有记录的Sname.Ssex和Class列.(select sname,ssex,class from student) Students.Select(s=> ...

  8. Java Performance Optimization Tools and Techniques for Turbocharged Apps--reference

    Java Performance Optimization by: Pierre-Hugues Charbonneau reference:http://refcardz.dzone.com/refc ...

  9. jvm系列(十):如何优化Java GC「译」

    本文由CrowHawk翻译,是Java GC调优的经典佳作. 本文翻译自Sangmin Lee发表在Cubrid上的"Become a Java GC Expert"系列文章的第三 ...

随机推荐

  1. 服务器返回的JSON字符串

    异步请求将type设为"json",或者利 用$.getJSON()方法获得服务器返回,那么就不需要eval()方法,因为这时候得到的结果已经是json对象

  2. php 接收二进制流转换成图片

    php 接收二进制流转换成图片,图片类imageUpload.php如下: <?php /** * 图片类 * @author http://blog.csdn.net/haiqiao_2010 ...

  3. HTTP状态码——对照表

    ASCII码介绍: HTTP状态码(HTTP Status Code)用来表示web服务器响应客户端的HTTP状态.主要有一下5种状态类型.1xx    消息2xx    成功3xx    重定向4x ...

  4. VOIP概述

    简介 VoIP(Voice over Internet Protocol)就是将模拟声音讯号(Voice)数字化,以数据封包(Data Packet)的型式在 IP 数据网络 (IP Network) ...

  5. 第 12 章 命令模式【Command Pattern】

    以下内容出自:<<24种设计模式介绍与6大设计原则>> 今天讲命令模式,这个模式从名字上看就很简单,命令嘛,老大发命令,小兵执行就是了,确实是这个意思,但是更深化了,用模式来描 ...

  6. jQuery响应式幻灯片插件jquery.glide.js(支持触摸&轻量级)

    找到一款好的幻灯片插件不容易,找到一款功能全并且使用很简单的幻灯片更不容易,今天为大家分享一款全能的幻灯片插件glide.js,也是我现在在使用的一款插件. jquery.glide.js是响应和触摸 ...

  7. Android 将文件保存到SD卡中

    ①写文件到sd卡中需要获得权限,在AndroidManifest.xml中添加如下权限: <uses-permission android:name="android.permissi ...

  8. ANDROID_MARS学习笔记_S03_003_LocationManager、LocationListener

    一.简介 二.代码1.xml (1)AndroidManifest.xml 增加 <uses-permission android:name="android.permission.A ...

  9. ZOJ3582:Back to the Past(概率DP)

    Recently poet Mr. po encountered a serious problem, rumor said some of his early poems are written b ...

  10. perl 对象

    唯一标识: 很明显,一个%employee 是不够的,每个雇员都要求有一个唯一标识和他或她自己的属性集合. 你可以动态的分配这个数据结构,也可以返回一个指向局部数据结构的引用 Vsftp:/root/ ...