1. 程式人生 > >CentOS 7.2 tomcat啟動慢3種解決辦法

CentOS 7.2 tomcat啟動慢3種解決辦法

今天啟動Tomcat,發現啟動很慢,需要幾分鐘,這個問題值得重視,所以就去檢視日誌,發現耗時是session引起隨機數問題導致的。Tomcat的Session ID通過SHA1演算法計算得到的,計算Session ID的時候必須有1個祕鑰,為了提高安全性Tomcat在啟動的時候通過隨機數生成祕鑰。

一、環境介紹

系統版本:CentOS 7.2
軟體版本:Tomcat 8

二、日誌分析,排查原因
日誌如下:

4-Mayr-2017  8:07:49 .623 INFO[localhost-startStop-1]org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of 
 SecureRandominstance for session ID generation using [SHA1PRNG] took [55,507] milliseconds. 
4-Mayr-2017  8:07:49 .653 INFO[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectoryDeployment of web appli 
cation directory/application/apache-tomcat-8.0.27/webapps/ROOT has finished in 165,935 ms

主要原因:
就是通過隨機數生成祕鑰的時候卡住了,導致Tomcat啟動慢或失敗。
#影響隨機數的強度的是生成用的熵,具體含義可以自己度娘 查下,不在這裡細說了。

檢視是否有足夠的熵來用於產生隨機數,可以通過如下命令來檢視
[[email protected] tools]# cat/proc/sys/kernel/random/entropy_avail 
7

為了加速/dev/random提供隨機數的速度,你可以通過操作裝置的外設,讓其產生大量的中斷(如網路傳輸資料,按鍵,移動滑鼠,在命令列敲幾個不同的命令,俗稱聚氣。
cat /dev/random  ##可以消耗能量

三、處理及優化
解決方法有3種;
方法1:使用rngd 軟體增大熵池 *****建議使用
grep  rdrand /proc/cpuinfo #需要cpu支援  
yum install rng-tools # 安裝rngd服務(熵服務,增大熵池) 
systemctl start rngd  # 啟動服務

方法2:java環境下修改配置檔案
vim $JAVA_HOME/jre/lib/security/java.security 
securerandom.source=file:/dev/random
改為 
securerandom.source=file:/dev/urandom

方法3:可以通過配置JRE使用非阻塞的Entropy Source:
vim $TOMCAT_HOME/bin/catalina.sh 
if [[ "$JAVA_OPTS" !=*-Djava.security.egd=* ]]; then
  JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom"
fi
##這個系統屬性egd表示熵收集守護程序(entropy gathering daemon)

相關推薦

CentOS 7.2 tomcat啟動3解決辦法

今天啟動Tomcat,發現啟動很慢,需要幾分鐘,這個問題值得重視,所以就去檢視日誌,發現耗時是session引起隨機數問題導致的。Tomcat的Session ID通過SHA1演算法計算得到的,計算Session ID的時候必須有1個祕鑰,為了提高安全性Tomcat在啟動

ArcGIS Enterprise 10.5.1 靜默安裝部署記錄(Centos 7.2 minimal版)- 3、安裝 ArcGIS for Server

切換 驗證 裝包 start dap sof 訪問權限 tar 服務 安裝ArcGIS for Server 解壓server安裝包,tar -xzvf ArcGIS_Server_Linux_1051_156429.tar.gz 切換到arcgis賬戶靜默安裝serv

CentOS 7.2下安裝Python 3.6.2

檢視python2.7 1、下載:wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz 2、解壓:tar -xvJf  Python-3.6.2.tar.xz     或者 xz -d Pytho

Centos-7.2 下搭建 Zookeeper-3.5.3 叢集的搭建與測試

《 Centos7下Zookeeper叢集的搭建與測試 》 前言: 在這兒通過搭建三個 zookeeper 例項,實現 zookeeper 的叢集環境的搭建工作,在實際開發工作中,將對應的 zookeeper 例項修改為各個 zookeeper 伺服器節點即可實

tomcat啟動失敗的3解決辦法

Tomcat啟動失敗的解決辦法1. 重複對映用eclipse開發時,用Eclipse開發,新建了的servlet會有一個url-pattern宣告: 這樣就不需要再在web.xml中新增對映,如果在web.xml中新增這樣一段:<servlet> <

centos 7.2 環境安裝Zabbix 3.4.6

Zabbix 簡介 zabbix(音同 zæbix)是一個基於WEB介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。 zabbix能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

啟動MongoDB報version `OPENSSL_1.0.2‘ not found的兩解決辦法

x86_64 crypt 原來 版本問題 原因分析 ubun 生效 grep openssl命令 問題描述: 在部署MongoDB的時候,啟動過程中有遇到“version `OPENSSL_1.0.2‘ not found ”這樣的報錯,導致MongoDB服務起不來: [r

Jenkins中 pipeline後臺tomcat啟動不起來問題解決辦法

在你的啟動shell 指令碼(即jenkins呼叫的指令碼)加入以下內容: #!/bin/bash source /etc/profile export BUILD_ID=dontkillme   TOMCAT_PATH=/data/hkd_server/apache-tomcat

PayPal提現到美國賬戶收35美元怎麼辦?最新3解決辦法

PayPal在12月4日,更改了提現到美國銀行的收費,當天每筆提現35美元/筆。然後在12月5日又取消了這筆費用,也就是隻收了1天。而從12月14日開始,paypal提現到美元銀行賬戶,開始正式收提現費了,每筆35美元。 很多做外貿、跨境電商和網賺的朋友,之前還可以通過把Paypal提現到

伺服器無法啟動的三解決辦法

1.當系統啟動顯示作業系統列表時, 按F8 出現高階啟動選項; a. Safe mode: 只加載基本的服務和驅動。 用於解決安裝了額外的硬體驅動或軟體後,導致系統不能正常啟動的情況。選擇Safe mode,若能進入作業系統,解除安裝額外的驅動或軟體。 b.Last k

centos 7.2 安裝mongodb 3.4.4免編譯

mongodb nbsp linux fas .org code data mage 獲取 /根目錄下: 獲取命令: wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.4.tgz 解壓命令:

阿裏雲CentOS 7.2 MySQL服務啟動失敗的解決思路

阿裏雲 centos 7.2 mysql服務啟動失敗的解決思路阿裏雲 CentOS 7.2 MySQL服務啟動失敗的解決思路前言 :昨天剛剛搭建好的MySQL讓老大看了一下,經過測試已經完成任務。但是今天早晨來的時候發現服務器被關了,此時我的心情崩潰的,但是我非常冷靜的解決了MySQL問題。如下:啟動MySQ

Zabbix 3.4 在CentOS 7.2 上安裝詳細步驟

ade cati wall ide end The systemd processes image 一、環境準備操作系統: [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611

centos 7.2 安裝PHP7及新增php-fpm開機啟動

centos 7 編譯安裝 php-7.2.11的步驟 在官網下載php-7.2.11的php壓縮包,centos 7 安裝 php-7.2.11的步驟,http://cn2.php.net/distributions/php-7.2.11.tar.gz cd /usr

CentOS 7.2部署MariaDB Galera Cluster(10.1.21-MariaDB) 3主叢集環境

MariaDB Galera Cluster 介紹Galera Cluster是由第三方公司Codership所研發的一套免費開源的叢集高可用方案,實現了資料零丟失,官網地址為http://galeracluster.com/。其在MySQLInnoDB儲存引擎基礎上打了wr

專案部署到tomcat中的3啟動方式

docbase是web應用和本地路徑,path是tomcat訪問這個應用的URL路徑。 Tomcat的專案部署方式有以下三種: 1.直接把專案複製到Tomcat安裝目錄的webapps目錄中,這是最簡單的一種Tomcat專案部署的方法,也是初學者最常用的方法。 2.在tom

CentOS 7.2修改網卡名稱

device cnblogs scripts sysconf ns3 cmd 名稱 ifcfg-eth centos 7 #!/bin/bash #Centos7.2修改網卡名稱ens33為eth0 #2017/05/19 if [ -f /etc/sysconfig

CentOS 7.2下安裝Mono 5.0

nbsp 很好 all win ack style 領域 logs 平臺 微軟Build2017大會期間.NET領域的.NET core之外,就是Visual Studio For Mac,大家都知道Visual Studio For Mac 是基於Mono運行的,Mono

關於centOS 7的服務啟動,端口查詢,防火墻管理

man 需要 ces mic 圖形界面 mil centos7.2 mct 相同 端口的查詢與開啟 CentOS 7 默認沒有使用iptables,所以通過編輯iptables的配置文件來開啟80端口是不可以的CentOS 7 采用了 firewalld 防火墻 如要查詢是

centos 7.2 下為erlang添加protobuffs

per 代碼 brush 協議 讀取 ger required mpi 會有 安裝前提: 1.已經安裝好erlang otp 2.配置了rebar (配置方法:http://www.cnblogs.com/panfeng412/archive/2011/08/14/2