欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

快速解決Tomcat啟動(dòng)慢的問(wèn)題,超簡(jiǎn)單

 更新時(shí)間:2020年10月22日 09:14:09   作者:沉默王二  
這篇文章主要介紹了快速解決Tomcat啟動(dòng)慢的問(wèn)題,超簡(jiǎn)單!具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

今天在幫一位同學(xué)解決了一個(gè)問(wèn)題——Tomcat啟動(dòng)超級(jí)慢,大概五六分鐘。解決之后,只需要3秒鐘即可啟動(dòng)。

問(wèn)題怎么解決呢?

在Tomcat的bin目錄下找到catalina.sh,然后打開它,在以下位置添加一行代碼:

-Djava.security.egd=file:/dev/urandom

2019年02月12日補(bǔ)充:很多朋友想知道原理,我就簡(jiǎn)單說(shuō)明一下。

Tomcat 7和Tomcat 8在啟動(dòng)的時(shí)候會(huì)調(diào)用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom來(lái)產(chǎn)生一串安全隨機(jī)數(shù)。

在Linux(CentOS)環(huán)境下,隨機(jī)數(shù)可以從兩個(gè)特殊的文件中產(chǎn)生,一個(gè)是/dev/urandom,另外一個(gè)是/dev/random。

它們產(chǎn)生隨機(jī)數(shù)的原理是利用當(dāng)前系統(tǒng)的熵池來(lái)計(jì)算出固定一定數(shù)量的隨機(jī)比特,然后將這些比特作為字節(jié)流返回。熵池就是當(dāng)前系統(tǒng)的環(huán)境噪音,熵指的是一個(gè)系統(tǒng)的混亂程度,系統(tǒng)噪音可以通過(guò)很多參數(shù)來(lái)評(píng)估,如內(nèi)存的使用,文件的使用量,不同類型的進(jìn)程數(shù)量等等。

/dev/random在不能產(chǎn)生新的隨機(jī)數(shù)時(shí)會(huì)阻塞程序,直到根據(jù)熵池產(chǎn)生新的隨機(jī)字節(jié)之后才返回;而/dev/urandom不會(huì)(ublock),當(dāng)然,產(chǎn)生的隨機(jī)數(shù)效果也不太好。

所以我們強(qiáng)制Tomcat使用/dev/urandom而不是/dev/random來(lái)產(chǎn)生隨機(jī)數(shù),速度就會(huì)大幅提升——由好幾分鐘到只有幾秒鐘。

補(bǔ)充知識(shí):Tomcat 啟動(dòng)很慢,且日志上無(wú)任何錯(cuò)誤的解決方案

1.問(wèn)題

有一次把項(xiàng)目部署上去阿里云的時(shí)候,項(xiàng)目沒有問(wèn)題,但是啟動(dòng)tomcat的時(shí)候,啟動(dòng)到一半,半天才有反應(yīng),才執(zhí)行完tomcat的啟動(dòng)進(jìn)程。

Tomcat 啟動(dòng)很慢,且日志上無(wú)任何錯(cuò)誤,在日志中查看到如下信息:

Log4j:[2015-10-29 15:47:11] INFO ReadProperty:172 - Loading properties file from class path resource [resources/jdbc.properties]

Log4j:[2015-10-29 15:47:11] INFO ReadProperty:172 - Loading properties file from class path resource [resources/common.properties]

29-Oct-2015 15:52:53.587 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for se

2.原因

Tomcat 7/8都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom類產(chǎn)生安全隨機(jī)類SecureRandom的實(shí)例作為會(huì)話ID,這里花去了342秒,也即接近6分鐘。SHA1PRNG算法是基于SHA-1算法實(shí)現(xiàn)且保密性較強(qiáng)的偽隨機(jī)數(shù)生成器。在SHA1PRNG中,有一個(gè)種子產(chǎn)生器,它根據(jù)配置執(zhí)行各種操作。

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

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

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

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

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

3.解決方案

有兩種解決辦法:

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

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

在catalina.sh中加入這么一行:

-Djava.security.egd=file:/dev/./urandom

即可。

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

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

打開$JAVA_PATH/jre/lib/security/java.security這個(gè)文件。

可以通過(guò)在vi命令進(jìn)行查找:

?securerandom.source

找到下面的內(nèi)容:

securerandom.source=file:/dev/random

然后替換成:

securerandom.source=file:/dev/./urandom

以上這篇快速解決Tomcat啟動(dòng)慢的問(wèn)題,超簡(jiǎn)單就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于Tomcat 數(shù)據(jù)源的原理、配置、使用介紹

    基于Tomcat 數(shù)據(jù)源的原理、配置、使用介紹

    下面小編就為大家?guī)?lái)一篇基于Tomcat 數(shù)據(jù)源的原理、配置、使用介紹。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Tomcat配置IPV6的實(shí)現(xiàn)步驟

    Tomcat配置IPV6的實(shí)現(xiàn)步驟

    本文主要介紹了Tomcat配置IPV6的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 詳解tomcat部署靜態(tài)html網(wǎng)站方法

    詳解tomcat部署靜態(tài)html網(wǎng)站方法

    這篇文章主要介紹了tomcat部署靜態(tài)html網(wǎng)站方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Tomcat常見異常及解決方案代碼實(shí)例

    Tomcat常見異常及解決方案代碼實(shí)例

    這篇文章主要介紹了Tomcat常見異常及解決方案代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Tomcat之配置文件的具體使用

    Tomcat之配置文件的具體使用

    Tomcat服務(wù)器的配置文件主要在conf文件夾中,本文就詳細(xì)的來(lái)介紹一下Tomcat之配置文件的具體使用,具有一定參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Tomcat7.0設(shè)置虛擬目錄配置虛擬路徑的方法講解

    Tomcat7.0設(shè)置虛擬目錄配置虛擬路徑的方法講解

    今天小編就為大家分享一篇關(guān)于Tomcat7.0設(shè)置虛擬目錄配置虛擬路徑的方法講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 關(guān)于給Tomcat設(shè)置maxPostSize的問(wèn)題及注意事項(xiàng)

    關(guān)于給Tomcat設(shè)置maxPostSize的問(wèn)題及注意事項(xiàng)

    這篇文章主要介紹了關(guān)于給Tomcat設(shè)置maxPostSize的問(wèn)題及注意事項(xiàng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 深入了解tomcat中servlet的創(chuàng)建方式實(shí)現(xiàn)

    深入了解tomcat中servlet的創(chuàng)建方式實(shí)現(xiàn)

    這篇文章主要介紹了深入了解tomcat中servlet的創(chuàng)建方式實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Win7系統(tǒng)下tomcat7.0配置教程

    Win7系統(tǒng)下tomcat7.0配置教程

    這篇文章主要為大家詳細(xì)介紹了Windows7系統(tǒng)下tomcat7.0配置教程,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 一個(gè)tomcat下部署多個(gè)項(xiàng)目的詳細(xì)步驟

    一個(gè)tomcat下部署多個(gè)項(xiàng)目的詳細(xì)步驟

    一個(gè)tomcat下如何部署多個(gè)項(xiàng)目,Linux跟windows系統(tǒng)下的步驟都差不多,以下linux系統(tǒng)下部署為例,windows系統(tǒng)下部署同理,接下來(lái)小編就給大家詳細(xì)的介紹一下在一個(gè)tomcat下部署多個(gè)項(xiàng)目的操作步驟,需要的朋友可以參考下
    2023-08-08

最新評(píng)論