光辉飞翔

导航

 

参考: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。

在此编写日志为他人提供便利。

 

posted on 2018-05-03 21:06  光辉飞翔  阅读(212)  评论(0编辑  收藏  举报