CMALL商城-Java安装与性能分析


CMALL商城——目录


卸载

rpm -qa |grep jdk

rpm -qa | grep jdk | xargs rpm -e --nodeps

安装

/usr/java/jdk1.8.0_191

jdk-8u191-linux-x64.tar.gz

tar -xvf jdk-8u191-linux-x64.tar.gz

java -version:

调优排查

用于查看当前机器上运行的java进程:jps -lvm 
可以查看某个进程的线程信息:top -Hp 43576
查看进程内存占用:ps -aux | grep 15276

JVM参数:
-XX:MetaspaceSize=128m (元空间默认大小) 
-XX:MaxMetaspaceSize=128m (元空间最大大小)  
-Xms1024m (堆初始大小) 
-Xmx1024m (堆最大大小) 
-Xmn256m (新生代大小) 
-Xss256k (栈最大深度大小) 
-XX:SurvivorRatio=8 (新生代分区比例 8:2) 
-XX:+UseConcMarkSweepGC (指定使用的垃圾收集器,这里使用CMS收集器) 
-XX:+PrintGCDetails (打印详细的GC日志)
java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar /jar包路径

nohup java -Xms128m -Xmx512m -jar gateway-1.0.0.0.jar --spring.profiles.active=test  > /dev/null 2>&1 &

pstree查看此进程下线程数量

pstree -p 43576|wc -l

jstack查看此进程下线程的堆栈信息

线程ID、线程的状态(wait、sleep、running 等状态)、是否持有锁信息。

jstack -l 43576 > 1.txt

jmap -heap打印堆信息

jmap -heap 2292

jmap dump堆内存

jmap -dump:live,format=b,file=2.hprof 21678

使用JDK的bin目录下的jvisualvm.exe打开:

查看GC类型

jinfo -flag UseParallelOldGC 11836

jinfo -flag UseSerialGC 11836

内存不足,自动下线

pstree -p 11836 |wc -l

top -p 11836 -H

jmap -heap 11836

ps -aux|grep 11836


jstack 11836 > 11836.txt

11836.txt线程统计:
CompilerThread:12个(C1-4、C2-8)
GC task thread:18个
com.alibaba.nacos:29个
Thread-:5个
lettuce-eventExecutorLoop:24个
HystrixTimer:24个
hystrix-finance-service:10个
http-nio:23个
logback:8个
RxComputationScheduler:12个
hystrix-activity-service:10个
RibbonApacheHttpClientConfiguration:6个
hystrix-consumer-service:10个
hystrix-basis-service:7个
ThreadPoolTaskScheduler:1个
SimplePauseDetectorThread:6个


jmap -dump:live,format=b,file=11836.hprof 11836

GC task thread:垃圾回收线程
http-nio thread:tomcat网络处理网络请求线程
C2CompilerThread:JIT编译线程,动态编译Java运行代码,C2表示编译的是server端代码

outOfMemoryError 年老代内存不足。
outOfMemoryError:PermGen Space 永久代内存不足。
outOfMemoryError:GC overhead limit exceed  垃圾回收时间占用系统运行时间的98%或以上。

CPU高

jstack 33374 > 33374.txt

top -H -p 33374

printf %x 33569

jstat

jstat -

jstat -class : 类加载的行为统计

Loaded :加载class的数量
Bytes : 加载class的大小(单位KB)
Unloaded :卸载class的数量
Bytes: 卸载class的大小(单位KB)
Time : 加载和卸载class所耗费的时间

jstat -compiler :HotSpt JIT编译器行为统计

Compiled :编译成功数
Failed : 编译失败数
Invalid : 无效数量
FailedType : 最后一次编译失效类型
FailedMethod :最后一次编译失效的方法

jstat -gc:垃圾回收堆的行为统计

jstat -gc 21678 5000 5


S0C : 第一个幸存区的总容量(KB)
S1C : 第二个幸存区的总容量(KB)
S0U : 第一个幸存区已使用的容量(KB)
S1U : 第二个幸存区已使用的容量(KB)
EC : 伊甸区的总容量(KB)
EU : 伊甸区已使用容量(KB)
OC : 老年区的总容量(KB)
MC : 元空间的总容量(KB)
MU : 元空间已使用容量(KB)
CCSC : 压缩类空间总容量(KB)
CCSU : 压缩类空间已使用总容量(KB)
YGC : 新生代GC次数
YGCT :新生代GC总耗费时间
FGC : 老年代GC次数
FGCT : 老年代GC总耗费时间
GCT : GC总耗费时间

jstat -gccapacity : 各个回收区内存情况

jstat -gccapacity 21678


NGCMN : 新生代占用的最小空间大小(KB)
NGCMX : 新生代占用的最大空间大小(KB)
NGC : 当前新生代空间大小(KB)
S0C : 第一幸存区当前空间大小(KB)
S1C :第二幸存区当前空间大小(KB)
EC : 伊甸区当前空间大小(KB)
OGCMN : 老年区最小空间大小(KB)
OGCMX : 老年区最大空间大小(KB)
OGC : 老年区当前空间大小(KB)
MCMN : 元空间最小空间大小(KB)
MCMX : 元空间最大空间大小(KB)
MC : 元空间当前空间大小(KB)
CCSMN : 压缩类空间最小大小(KB)
CCSMX : 压缩类最大空间大小(KB)
CCSC : 压缩类当前空间大小(KB)
YGC : 新生代GC次数
FGC : 老年代GC次数

jstat -gccause :垃圾收集统计概述

S0 :第一幸存区已使用空间百分比.
S1 : 第二幸存区已使用空间百分比
E : 伊甸区已使用空间百分比
O : 老年区已使用空间百分比
M : 元空间使用百分比
CCS : 压缩类空间使用百分比
YGC : 新生代GC次数
FGC : 老年代GC次数
LGCC :最近一次GC原因
GCC : 当前GC原因

jstat gc -gcmetacapacity :元空间使用情况

MCMN : 元空间最小空间大小(KB)
MCMX : 元空间最大空间大小(KB)
MC : 元空间当前空间大小(KB)
CCSMN : 压缩类空间最小空间大小(KB)
CCSMX : 压缩类空间最大空间大小(KB)
CCSC : 压缩类空间当前空间大小(KB)
YGC : 新生代GC次数
FGC : 老年代GC次数
FGCT: 老年代GC耗费时间
GCT : GC总耗费时间

jstat -gcnew : 显示新生代统计信息

S0C : 第一幸存区总空间大小(KB)
S1C : 第二幸存区总空间大小(KB)
S0U : 第一幸存区已使用空间大小(KB)
S1U : 第二幸存区已使用空间大小(KB)
TT : 提升阈值(提升阈值)
MTT : 最大阈值
DSS : survivor区域大小 (KB)
EC : 伊甸区总空间大小(KB)
EU : 伊甸区已使用空间大小(KB)

jstat -gcnewcapacity : 统计新生代及内存使用情况

NGCMN : 新生代最小空间大小(KB)
NGCMX : 新生代最大空间大小(KB)
NGC : 当前新生代空间大小(KB)
S0CMX : 第一幸存区最大空间大小(KB)
S0C : 第一幸存区当前空间大小(KB)
S1CMX : 第二幸存区最大空间大小(KB)
S1C : 第二幸存区当前空间大小(KB)
ECMX : 伊甸区最大空间大小(KB)
EC : 伊甸区当前空间大小(KB)
YGC : 新生代GC次数
FGC : 老年代GC次数

jstat -gcold : 统计老年代和元空间使用情况

jstat -gcold 21678


MC : 元空间总大小(KB)
MU : 元空间已使用大小(KB)
CCSC : 压缩类空间总大小(KB)
CCSU : 压缩类空间已使用大小(KB)
OC : 老年区空间总大小(KB)
OU : 老年区已使用大小(KB)
YGC : 新生代GC次数
FGC : 老年代GC次数
FGCT : 老年代GC总耗时
GCT : GC总耗时

jstat -gcoldcapacity : 统计老年代内存使用情况

OGCMN :老年区占用最小空间(KB)
OGCMX : 老年区占用最大空间(KB)
OGC : 当前老年区空间(KB)
OC : 当前老年区空间(KB)
YGC :新生代GC次数
FGC : 老年代GC次数
FGCT : 老年代GC总耗时
GCT : GC总耗时

jstat -gcutil : 垃圾回收统计

jstat -gcutil 2292 1000 5

S0 :第一幸存区已使用空间百分比.
S1 : 第二幸存区已使用空间百分比
E : 伊甸区已使用空间百分比
O : 老年区已使用空间百分比
M : 元空间使用百分比
CCS : 压缩类空间使用百分比
YGC : 新生代GC次数
FGC : 老年代GC次数
GCT :GC总耗时

jstat -printcompilation : Hotspot方法编译统计情况

Compiled : 已编译方法次数
Size : 最近一次方法编译大小
Type : 最近一次编译方法类型
Method : 最近一次编译方法


CMALL商城——目录


如有帮助,烦请点赞关注。有任何问题请私信评论

展开阅读全文

页面更新:2024-04-29

标签:百分比   新生代   线程   最小   老年   次数   大小   性能   年代   时间   商城   空间

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top