目录
一、现象
Java Api服务 不定时会有一次短时间的5xx,持续十几秒,随后自愈
1、伴随表现
1)线程数突涨
2)接口耗时上涨
部分接口耗时接口长达十几秒
3)Cpu抑制明显
4)宿主机/data目录使用率 降低
二、排查方向
业务代码侧没看出问题,因此针对每一个可能的点进行逐一排查和优化
1、调整pod配置-无效
1)方案
每次出现5xx均伴随着CPU抑制,怀疑短时间内请求QPS暴涨,因此调整pod配置,上调CPU和内存配置,并调整启动参数配置
原JVM参数:
-Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -server -Xms2000m -Xmx2000m -Xmn1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:AutoBoxCacheMax=20000 -XX:-UseCounterDecay -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+PrintPromotionFailure -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC
调整后JVM参数:
-Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -server -Xms4096m -Xmx4096m -Xmn2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:AutoBoxCacheMax=20000 -XX:-UseCounterDecay -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+Print