文章目录
  1. 1. 关于jvm性能调优重要命令行

关于jvm性能调优重要命令行

jvm

以下都是基于JDK1.8

//查看当前系统jvm的线程栈内存大小

java -XX:+PrintFlagsFinal -version | grep ThreadStackSize

//查看docker实例的内存与cpu情况

docker stats

//查看宿主机内存情况(由于docker是和宿主机共享物理内存和cpu资源的,所以在宿主机上查看和在docker主机内查看是一样的)

cat /proc/meminfo

在docker实例里查看:

-306.png

在宿主机里查看:

-307.png

在堆内存不变的情况下,线程栈内存越小,可创建的线程数越多,栈内存越大,可创建的线程数越少。

//查看某服务进程

ps aux|grep ‘bzy-auth’

//使用jmap命令查看当前jvm堆内存配置和使用情况(在docker里的java进程是1)

jmap -heap 1 

-191.jpg

//查看当前jvm线程数统计

jstack 1 |grep ‘tid’|wc –l (linux 64位系统中jvm线程默认栈大小为1MB)

-308.png

//设置jvm最大堆内存大小

java –Xmx1024m -jar xx.jar

影响线程数量的因素有下面几个:

-Xms intial java heap size
-Xmx maximum java heap size,代表老年代
-Xss the stack size for each thread
系统限制 系统最大可开线程数

-309.png

//影响java堆内存性能

-xmn 代表的是年轻态,超过这个就会后面被gc移动到老年代中,执行垃圾次回收

//查看进程相关信息占用的内存情况

pmap -x 1

//按顺序查看进程各指标

ps -e -o ‘pid,comm,args,pcpu,rsz,vsz,stime,user,uid’ | grep java |  sort -nrk5

//查出pid指标

top -p [pid]

//查看应用程序pid

ps -aux|grep bzy-auth

//查看某用户进程id

top -u root

//直接使用命令查看一下当前 JVM 默认参数

java -XX:+PrintCommandLineFlags -version

文章目录
  1. 1. 关于jvm性能调优重要命令行