csv文件内容有5000个用户;线程数设置1000并循环10。查询商品详情
1、 故障现象
出现线程未释放、堵塞,服务接口无法响应。
2、问题定位
定位问题进程:使用top命令查看资源占用情况
定位问题线程:使用 ps -mp pid -o THREAD,tid,time
命令查看该进程的线程情况,发现该进程的多个线程占用率很高
查看问题线程堆栈:使用 jstack 命令打印线程堆栈信息,命令格式:jstack pid |grep tid -A 30
内存问题定位:使用 jstat -gcutil
命令查看进程的内存情况
垃圾回收统计:
- S0:幸存1区当前使用比例
- S1:幸存2区当前使用比例
- E:伊甸园区使用比例
- O:老年代使用比例
- M:元数据区使用比例
- CCS:压缩使用比例
- YGC:年轻代垃圾回收次数
- FGC:老年代垃圾回收次数
- FGCT:老年代垃圾回收消耗时间
- GCT:垃圾回收消耗总时间