Web调优之IBM JDK+liberty(二),原来都是UUID惹得祸

本节调优是在Web调优之IBM JDK+liberty(一): Jmeter pod里压力,50个线程并发测试,调整 -Xms -Xms, Log原来是大问题 基础上的调优

问题发现

100个Thread压测30分钟发现,39个线程在执行到at java/security/SecureRandom.nextBytes(SecureRandom.java:471(Compiled Code)) Block了,查看调用栈,原来是罪恶的UUID.ramdomUUID,早知道UUID有performance问题,没想到这么严重,而且50个Thread压测并不明显,100个情况就很突出了,我们每隔两三分钟生成一次java core文件,发现生成的java core 文件只有2个有这么严重的线程Block问题,看来以后java core文件一个都不能放过。

 下图这个蓝色的部分,就是在调用UUID的线程,占到了39个线程,一共才100个左右线程

 2. 删除UUID代码后的压测对比

总结:

Average time 降了15s,降了十分之一

删之前在压测中间是有明显的峰值,我理解那个时间就是大量的线程在因为UUIDblock, 改完代码访问的时候很平稳

删除UUID前:

 删除UUID代码后:

原文地址:https://www.cnblogs.com/Ivyduan/p/13842912.html