Centos7下啓動tomcat很慢原因及解決方案

現象

  在一次CentOS 7系統中安裝Tomcat,啓動過程很慢,需要幾分鐘,經過查看日誌,發現耗時在這裏:是session引起的隨機數問題導致的。Tocmat的Session ID是通過SHA1算法計算得到的,計算Session ID的時候必須有一個密鑰。爲了提高安全性Tomcat在啓動的時候回通過隨機生成一個密鑰。

INFO: Starting service Catalina
Sep 30, 2017 9:29:55 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.81
Sep 30, 2017 9:29:55 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/ROOT
Sep 30, 2017 9:31:03 AM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
WARNING: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [67,190] milliseconds.
Sep 30, 2017 9:31:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/ROOT has finished in 67,666 ms
Sep 30, 2017 9:31:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/docs
Sep 30, 2017 9:31:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/docs has finished in 61 ms
Sep 30, 2017 9:31:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/examples
Sep 30, 2017 9:31:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/examples has finished in 334 ms
Sep 30, 2017 9:31:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/host-manager
Sep 30, 2017 9:31:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/host-manager has finished in 63 ms
Sep 30, 2017 9:31:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/manager
Sep 30, 2017 9:31:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/manager has finished in 47 ms
Sep 30, 2017 9:31:03 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Sep 30, 2017 9:31:03 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Sep 30, 2017 9:31:03 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 68241 ms


圖片看的更清楚:





分析結果

主要原因是生成隨機數的時候卡住了,導致tomcat啓動不了。


解決方案

vim $JAVA_HOME/jre/lib/security/java.security
securerandom.source=file:/dev/urandom
改爲
securerandom.source=file:/dev/./urandom

結果

重啓tomcat,啓動時間由68241ms—>956ms

INFO: Starting Servlet Engine: Apache Tomcat/7.0.81
Sep 30, 2017 9:47:22 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/ROOT
Sep 30, 2017 9:47:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/ROOT has finished in 460 ms
Sep 30, 2017 9:47:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/docs
Sep 30, 2017 9:47:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/docs has finished in 48 ms
Sep 30, 2017 9:47:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/examples
Sep 30, 2017 9:47:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/examples has finished in 292 ms
Sep 30, 2017 9:47:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/host-manager
Sep 30, 2017 9:47:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/host-manager has finished in 50 ms
Sep 30, 2017 9:47:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/manager
Sep 30, 2017 9:47:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/tomcat/apache-tomcat-7.0.81/webapps/manager has finished in 46 ms
Sep 30, 2017 9:47:23 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Sep 30, 2017 9:47:23 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Sep 30, 2017 9:47:23 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 956 ms






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章