参考:https://www.cnblogs.com/lemon-flm/p/7396627.html
weblogic运行中持续报weblogic.servlet.internal.session.SessionData.getNextId()耗时较高的问题。经过jstack PID > 1.log的线程运行状态(java.lang.Thread.State)检查,发现线程存在大量的锁等待(BLOCKED)情况。锁为java.security.SecurityRandom.next()。
经过dump日志分析查看,存在读文件的情况,path为/dev/random 和 /dev/urandom。
经过测试验证:https://www.cnblogs.com/zhouhbing/p/5820899.html
发现real的耗时情况比较严重,根据https://www.cnblogs.com/lemon-flm/p/7396627.html 中提到的解决办法进行了处理。
与作者不同的是我用的是weblogic,而不是tomcat。所有直接修改app的 startWebLogic.sh,增加配置 -Djava.security.egd=file:/dev/./urandom 重启weblogic。
经过loadrunner的200u测试,结果理想,直接从1400tps上升到了2800tps。
在此编写日志为他人提供便利。