jvm调优的常见指令和参数

1.指令

1.jps命令用于查询正在运行的JVM进程。

2.jstat可以实时显示本地或者远程JVM进程中类的装载、内存、垃圾收集、JIT编译等数据。

3.jinfo用于查询当前运行的JVM的属性和参数值。

4.jmap用于显示当前Java堆和永久代的详细信息。

5.jhat用于分析使用jmap生成的dump文件,是JDK自带的工具。

6.jstack用于生成当前JVM所有线程的快照,线程快照是JVM每一个线程正在执行的方法,目的是定位出线程出现长时间停顿的原因。

2.参数

1.-Xmx:用于指定Java程序的最大堆内存,使用java -Xmx5000M -version判断当前系统能分配的最大堆内存。

2.-Xms:指定最小堆内存,通常设置成跟最大堆内存一样,减少GC。

3.-Xmn:设置新生代大小。整个堆内存 = 新生代内存 + 老年代内存,此值对系统性能影响较大,Sun官方推荐设置为堆的3/8。

4.-Xss:指定线程的最大栈空间。该参数决定了java函数调用的深度,值越大调用深度越深,若值太小,容易发生栈溢出错误。

5.-XX:PermSize :指定方法区(永久区)的初始值,默认是物理内存的1/64,Java8永久区移除之后,取而代之的是元数据区,由-XX:MetaspaceSize指定。

6.-XX:MaxPermSize :指定方法区(永久区)的最大值,默认是物理内存的1/4,Java8永久区移除之后,取而代之的是元数据区,由-XX:MaxMetaspaceSize指定。

7.-XX:NewRatio=n:老年代和新生代比值,n=2时,说明老年代和新生代的比值为2:1。

8.-XX:SurvivorRatio=n:Eden区和Survivor区的比值。n=8时,说明Eden和Survivor比值为8:1:1,因为Survivor有两个(from,to)。

 

参考文章:https://juejin.im/post/5e5c5c52f265da575f4e7558#heading-187

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章