1.基本概念。
JAVA_MEM_OPTS=" -server -Xmx2g -Xms2g -Xmn512m -XX:PermSize=128m
-Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection
-XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseCompressedOops

-server 启用能够执行优化的编译器。

-Xss 单个线程堆栈大小值。

-Xms 启动应用时,JVM堆空间的初始大小值。

-Xmx 应用运行中,JVM堆空间的极限值。

-Xmn 堆空间的新生代空间大小。

-XX:PermSize永久存储区的大小

2.VM性能诊断工具

基本工具:JPS ,JSTAT,JMAP

Jstat( “Java Virtual Machine statistics monitoring tool” )是JDK自带的一个轻量级小工具。主要对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。

语法结构如下:jstat [Options] vmid [interval] [count]

    Options -- 选项,我们一般使用 -gcutil 查看gc情况

    vmid    -- VM的进程号,即当前运行的java进程号

    interval-- 间隔时间,单位为毫秒

    count   -- 打印次数,如果缺省则打印无数次

root@(none):~# jstat -gcutil 595

  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT  GCT  

  0.00   0.00  25.40  29.78  48.50      5    0.036     3    0.238    0.274

S0  -- Heap上的 Survivor space 0 区已使用空间的百分比

    S1  -- Heap上的 Survivor space 1 区已使用空间的百分比

    E   -- Heap上的 Eden space 区已使用空间的百分比

    O   -- Heap上的 Old space 区已使用空间的百分比

    P   -- Perm space 区已使用空间的百分比

    YGC -- 从应用程序启动到采样时发生 Young GC 的次数

    YGCT-- 从应用程序启动到采样时 Young GC 所用的时间(单位秒)

    FGC -- 从应用程序启动到采样时发生 Full GC 的次数

    FGCT-- 从应用程序启动到采样时 Full GC 所用的时间(单位秒)

    GCT -- 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

jstat -gccapacity查看内存占用情况

[admin@server12 ~]$ jstat -gccapacity 10010

NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN     
OGCMX       OGC         OC      PGCMN    PGCMX     PGC       PC    
YGC    FGC

65536.0 524288.0  65536.0 6528.0 6528.0  52480.0   196608.0 
1572864.0   450572.0   450572.0  21248.0 131072.0  72900.0  72900.0 
93842 16790

NGCMN Minimum new generation capacity (KB).

NGCMX Maximum new generation capacity (KB).

NGC Current new generation capacity (KB).

S0C Current survivor space 0 capacity (KB).

S1C Current survivor space 1 capacity (KB).

EC Current eden space capacity (KB).

OGCMN Minimum old generation capacity (KB).

OGCMX Maximum old generation capacity (KB).

OGC Current old generation capacity (KB).

OC Current old space capacity (KB).

PGCMN Minimum permanent generation capacity (KB).

PGCMX Maximum Permanent generation capacity (KB).

PGC Current Permanent generation capacity (KB).

PC Current Permanent space capacity (KB).

YGC Number of Young generation GC Events.

FGC Number of Full GC Events.

jmap

jmap 是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。

使用方法

jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。

jmap -dump:format=b,file=f1 PID可以将该PID进程的内存heap输出出来到f1文件里。

集成工具: JConsole,jvisualvm

典型性能故障分析

2.vmstat

(转)linux下jvm 参数调优的更多相关文章

  1. (转)JVM参数调优八大技巧

    这里和大家分享一下JVM参数调优的八条经验,JVM参数调优,这是很头痛的问题,设置的不好,JVM不断执行FullGC,导致整个系统变得很慢,网站停滞时间能达10秒以上,相信通过本文的学习你对JVM参数 ...

  2. 性能测试三十六:内存溢出和JVM常见参数及JVM参数调优

    堆内存溢出: 此种溢出,加内存只能缓解问题,不能根除问题,需优化代码堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值,就会出现内存溢出OutOfMemory:Java h ...

  3. 【学习】011 JVM参数调优配置

    自动内存管理机制 Java虚拟机原理 所谓虚拟机,就是一台虚拟的机器.他是一款软件,用来执行一系列虚拟计算指令,大体上虚拟机可以分为 系统虚拟机和程序虚拟机, 大名鼎鼎的Visual Box.Vmar ...

  4. JVM参数调优

    JVM参数调优 JVM参数调优是一个很头痛的问题,可能和应用有关系,下面是本人一些调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存,d ...

  5. SpringBoot-内部运行jvm参数调优

    SpringBoot JVM参数调优 这个根据服务器的内存大小,来设置堆参数. -Xms :设置Java堆栈的初始化大小 -Xmx :设置最大的java堆大小 实例参数-XX:+PrintGCDeta ...

  6. (转)linux IO 内核参数调优 之 参数调节和场景分析

    1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总结可知cached中的脏数据满足如下几个条件中一个或者多个的时 ...

  7. Perf -- Linux下的系统性能调优工具,第 1 部分 应用程序调优的使用和示例 Tracepoint 是散落在内核源代码中的一些 hook,一旦使能,它们便可以在特定的代码被运行到时被触发,这一特性可以被各种 trace/debug 工具所使用。Perf 就是该特性的用户之一。

    Perf -- Linux下的系统性能调优工具,第 1 部分 应用程序调优的使用和示例 https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/i ...

  8. Perf Event :Linux下的系统性能调优工具

    Perf Event :Linux下的系统性能调优工具 2011-05-27 10:35 刘 明 IBMDW 字号:T | T Perf Event 是一款随 Linux 内核代码一同发布和维护的性能 ...

  9. JVM参数调优:Eclipse启动实践

    本文主要参考自<深入理解 Java 虚拟机>.这本书是国人写的难得的不是照搬代码注释的且不是废话连篇的技术书,内容涵盖了 Java 从源码到字节码到执行的整个过程,包括了 JVM(Java ...

随机推荐

  1. Swift学习笔记五

    基础运算符 Swift的大部分运算符和C及OC相同,也分一元二元多元的,这里只记录一些Swift特有的性质或写法. 赋值运算符( = ) 在等号右边是一个有多个值的元组时,它的成员值可以分解并同时分别 ...

  2. 怎样拷贝整个目录并且忽略部分文件及目录(包括windows)

    http://www.dewen.org/q/2150 rsync -a --exclude dir1 --exclude dir2 ... source target

  3. MediaPlayer开发全解析

    本文介绍MediaPlayer的使用.MediaPlayer可以播放音频和视频,另外也可以通过VideoView来播放视频,虽然VideoView比MediaPlayer简单易用,但定制性不如用Med ...

  4. MYSQL内存--------启动mysql缓存机制,实现命中率100% 转

    虽然这个标题夸张得过了头,但此文很完整,值得学习.转自 http://www.yy520.net/read.php?278 myql优化,启动MySQL缓存机制,实现命中率100% 配置你的mysql ...

  5. 1050. String Subtraction (20)

    this problem  is from PAT, which website is http://pat.zju.edu.cn/contests/pat-a-practise/1050. firs ...

  6. SQL Server压缩日志及数据库文件大小

    请按步骤进行,未进行前面的步骤时,请不要做后面的步骤,以免损坏你的数据库. 一般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据.第6步如果日志达到上限,则以后的数据库处理会失败,在清理 ...

  7. Hidden Markov Model

    Markov Chain 马尔科夫链(Markov chain)是一个具有马氏性的随机过程,其时间和状态参数都是离散的.马尔科夫链可用于描述系统在状态空间中的各种状态之间的转移情况,其中下一个状态仅依 ...

  8. BEA WebLogic Server 10 查看和配置日志

    查看和配置日志 WebLogic Server 内的每个子系统都可生成日志消息来传达其状态.例如,当启动 WebLogic Server 实例时,安全子系统会输出消息以报告其初始化状态.为了记录其子系 ...

  9. RPC框架Thrift例子-PHP调用C++后端程序

    更新 2016-02-22: Response对象不用主动创建. 前言 前段时间用了一下Facebook的开源RPC框架Thrift,做PHP客户端调用C++后端程序,真心觉得Thrift不错! 本文 ...

  10. isa-swizzling 是什么鬼?

    刚看到这个名字估计很多人有点熟悉,Method Swizzling对不对,不熟悉也没关系,去看看之前的一篇文章黑魔法之Method Swizzling吧.不过也可以根据名称猜测出来所谓的isa-swi ...