CentOS环境下tomcat启动超级慢的解决方案
摘要:?在本地開發環境,應用正常啟動。 在CentOS測試環境,應用啟動速度也是正常的。 但是在阿里云的生產環境,tomcat啟動超級慢,并且在最終打印出來以下內容: org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [152,149] milliseconds. 152秒,這可以就是2分鐘啊。
在本地開發環境,應用正常啟動。
在CentOS測試環境,應用啟動速度也是正常的。
但是在阿里云的生產環境,tomcat啟動超級慢,并且在最終打印出來以下內容:
org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [152,149] milliseconds.152秒,這可以就是2分鐘啊。并且如果多次啟動,可能需要等待更久,有幾次上線只是在啟動時等待了5分鐘多。
經過百度,發現是Tomcat 7/8使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom類產生安全隨機類SecureRandom的實例作為會話ID時,由于堵塞,造成時間上的消耗。
解決方案如下,由于第一種需要修改catalina.sh,在生產環境沒有嘗試。而是采用的第二種的方式。
有兩種解決辦法:
1)在Tomcat環境中解決
可以通過配置JRE使用非阻塞的Entropy Source。
在catalina.sh中加入這么一行:-Djava.security.egd=file:/dev/./urandom 即可。
加入后再啟動Tomcat,整個啟動耗時下降到Server startup in 2912 ms。
2)【已驗證】在JVM環境中解決
打開$JAVA_PATH/jre/lib/security/java.security這個文件,找到下面的內容:
securerandom.source=file:/dev/urandom
替換成
securerandom.source=file:/dev/./urandom
用云棲社區APP,舒服~
原文鏈接轉載于:https://www.cnblogs.com/jzy996492849/p/7054101.html
總結
以上是生活随笔為你收集整理的CentOS环境下tomcat启动超级慢的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android中判断设备定位状态
- 下一篇: JavaScript中String和JS