服务端排查手册(不定时更新)
GC 排查
当服务端发生大量gc时,会导致各种各样的问题。
比如你以为是网络问题,发现响应速度非常慢。实际上,可能是正在疯狂gc。
在排查 gc前,当然需要先知道一些gc的简单知识,比如这里 https://my.oschina.net/zzxzzg/blog/4315817
gc.log
可以通过配置类似如下的java参数,进行gc.log的输出
-XX:+PrintGC 输出GC日志
-XX:+PrintGCDetails 输出GC的详细日志
-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)
-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息
-Xloggc:../logs/gc.log 日志文件的输出路径
log中可以看到gc的记录。
jstat
jstat是一个用于检测jvm状态的强大工具,理所当然也能用来查看gc的情况。
比如使用如下命令得到结果
/opt/taobao/java/bin/jstat -gcutil 2482(表示java 进程号) 1000(打印次数) S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 94.43 49.90 67.85 90.07 87.67 150317 13207.982 2612 756.582 13964.564
S0 表示 s0的使用百分比
S1 表示s1的使用百分比
E 表示eden 使用百分比
O 表示 old space是会用百分比
M metaspace 使用的百分比
CCS 压缩使用比例
YGC 从进程启动后发生young gc的次数
YGCT 从进程启动后发生young gc的总耗时
FGC 从进程启动后发生 full gc的次数
FGCT 从进程启动后发生 full gc总耗时
GCT 总耗时
网络检查
mtop 检查
curl "{ip}:12220/mtop.status"
以上是 服务端排查手册(不定时更新) 的全部内容, 来源链接: utcz.com/z/517602.html