Linux系統(tǒng)下Tomcat8啟動速度很慢怎么辦

這篇文章給大家分享的是有關(guān)Linux系統(tǒng)下Tomcat8啟動速度很慢怎么辦的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括梁平網(wǎng)站建設(shè)、梁平網(wǎng)站制作、梁平網(wǎng)頁制作以及梁平網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,梁平網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到梁平省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

前言

最近在工作中遇到一個問題,在Linux下Tomcat 8啟動很慢,且日志上無任何錯誤,在日志中查看到如下信息:

Log4j:[2017-08-2715:47:11] INFO ReadProperty:172 - Loading properties file from class path resource [resources/jdbc.properties]
Log4j:[2017-08-27 15:47:11] INFO ReadProperty:172 - Loading properties file from class path resource [resources/common.properties]
27-Aug-2017 15:52:53.587 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [342,445] milliseconds.

原因

Tomcat 7/8都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom類產(chǎn)生安全隨機(jī)類SecureRandom的實(shí)例作為會話ID,這里花去了342秒,也即接近6分鐘。

SHA1PRNG算法是基于SHA-1算法實(shí)現(xiàn)且保密性較強(qiáng)的偽隨機(jī)數(shù)生成器。

在SHA1PRNG中,有一個種子產(chǎn)生器,它根據(jù)配置執(zhí)行各種操作。

1)如果java.security.egd屬性或securerandom.source屬性指定的是”file:/dev/random”或”file:/dev/urandom”,那么JVM會使用本地種子產(chǎn)生器NativeSeedGenerator,它會調(diào)用super()方法,即調(diào)用SeedGenerator.URLSeedGenerator(/dev/random)方法進(jìn)行初始化。

2)如果java.security.egd屬性或securerandom.source屬性指定的是其它已存在的URL,那么會調(diào)用SeedGenerator.URLSeedGenerator(url)方法進(jìn)行初始化。

這就是為什么我們設(shè)置值為”file:///dev/urandom”或者值為”file:/./dev/random”都會起作用的原因。

在這個實(shí)現(xiàn)中,產(chǎn)生器會評估熵池(entropy pool)中的噪聲數(shù)量。隨機(jī)數(shù)是從熵池中進(jìn)行創(chuàng)建的。當(dāng)讀操作時(shí),/dev/random設(shè)備會只返回熵池中噪聲的隨機(jī)字節(jié)。/dev/random非常適合那些需要非常高質(zhì)量隨機(jī)性的場景,比如一次性的支付或生成密鑰的場景。

當(dāng)熵池為空時(shí),來自/dev/random的讀操作將被阻塞,直到熵池收集到足夠的環(huán)境噪聲數(shù)據(jù)。這么做的目的是成為一個密碼安全的偽隨機(jī)數(shù)發(fā)生器,熵池要有盡可能大的輸出。對于生成高質(zhì)量的加密密鑰或者是需要長期保護(hù)的場景,一定要這么做。

那么什么是環(huán)境噪聲?

隨機(jī)數(shù)產(chǎn)生器會手機(jī)來自設(shè)備驅(qū)動器和其它源的環(huán)境噪聲數(shù)據(jù),并放入熵池中。產(chǎn)生器會評估熵池中的噪聲數(shù)據(jù)的數(shù)量。當(dāng)熵池為空時(shí),這個噪聲數(shù)據(jù)的收集是比較花時(shí)間的。這就意味著,Tomcat在生產(chǎn)環(huán)境中使用熵池時(shí),會被阻塞較長的時(shí)間。

解決

有兩種解決辦法:

1)在Tomcat環(huán)境中解決

 可以通過配置JRE使用非阻塞的Entropy Source。

 在catalina.sh中加入這么一行: -Djava.security.egd=file:/dev/./urandom 即可。

 加入后再啟動Tomcat,整個啟動耗時(shí)下降到Server startup in 2912 ms。

2)在JVM環(huán)境中解決

 打開$JAVA_PATH/jre/lib/security/java.security這個文件,找到下面的內(nèi)容:
securerandom.source=file:/dev/urandom

替換成
securerandom.source=file:/dev/./urandom

感謝各位的閱讀!關(guān)于“Linux系統(tǒng)下Tomcat8啟動速度很慢怎么辦”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

網(wǎng)頁名稱:Linux系統(tǒng)下Tomcat8啟動速度很慢怎么辦
網(wǎng)頁路徑:http://www.muchs.cn/article44/geeche.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作營銷型網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈、企業(yè)建站、網(wǎng)站排名微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化