JVM性能调优

说在前面:

1.为什么要jvm调优

前面有篇文件已经说明了java的内存模型:

java应用------>依赖jvm---->依赖OS(操作系统)

所以应用直接打交道的是jvm,要想应用跑的稳健(系统异常少,比如内存溢出之类的),快速(响应速度快,因为gc的时候应用的所有线程都停止工作,影响速度)

上面的这两个目标都需要调节jvm来解决:

2.jvm调优的重点:

a. 垃圾回收+

  b. 内存管理

3.要对哪些地方调优:

一张图让大家明白jvm内存结构JVM性能调优_第1张图片


4.对于每个参数调多少?

经验+工具:


经验上图中已经给出一部分:

-Xms:heap最小尺寸

-Xmx::heap最大尺寸

这两者最要配置一样的大小

-Xmn:young区的尺寸:应该为上面两者的1/3;


下面看工具:

要调整他们首先要观察JVM内存和gc,观察的工具很多,jdk本事提供了一些,这些工具简单实用,而且不需要安装。

最长用的工具

jps【查看JVM的进程id】+

jstat【查看内容和gc状态】

Jstat的例子::

jstat -gcutil 21308 250 10

其中, 21308 是(运行 jboss )的 JVM pid 250 是采样间隔,单位是毫秒,即 250 毫秒采集一次数据; 10 是采样次数。

JVM性能调优_第2张图片

通过观察采集次数,就可以看到内存和gc的变化了。

观察结论:内存各个区域占用率不高,gc时间也不长,不过,perm使用率比较低【13.57为百分比】(所以分配的有点大了,太浪费了)。因为perm区的对象与JVM的生命周期是一样的,对象数量不会动态变化,所以,我们可以把这个区域的尺寸设置为原尺寸的二分之一(减小perm区的大小),这样,perm的占用率将从13%左右增加到26%左右。

5.去哪里调参数

对eclipse进行JVM配置

JVM性能调优_第3张图片

对tomcat进行JVM配置

JVM性能调优_第4张图片

你可能感兴趣的:(系统优化,jvm)