JDK8下java.security.signature secureRandom阻塞问题定位过程

356 阅读1分钟

1、问题背景 1.1 程序调用JDK8下java.security.signature sign方法进行签名 1.2 日志打印3000多字节报文加签耗时几秒到几十、甚至几百秒 2、问题定位过程 2.1 是否发生full gc? 2.1.1 配置程序启动参数 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log 2.1.2 触发sign调用,查看gc.log日志信息 发现gc日志正常(自行了解gc日志如何分析) 2.2 纠结过程(代码审核、代码重构等等) 2.3 同事通过搜索发现有可能是secureRandom性能问题导致 通过该链接可了解并解决: www.cnblogs.com/dflvlj/p/10… 2.4 如何定位是secureRandom性能问题导致? 2.4.1 通过日志查找到打印的阻塞的线程号 2.4.2 jstack PID 通过2.4.1中线程号找到对应输出的信息