服务端排查手册(不定时更新)

编程

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

回到顶部