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

Linux系統(tǒng)下Tomcat8啟動速度很慢的解決方法

 更新時間:2017年08月27日 10:25:02   投稿:daisy  
這篇文章主要給大家介紹了關于在Linux系統(tǒng)下Tomcat8啟動速度很慢的解決方法,需要的朋友可以參考下

前言

最近在工作中遇到一個問題,在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類產生安全隨機類SecureRandom的實例作為會話ID,這里花去了342秒,也即接近6分鐘。

SHA1PRNG算法是基于SHA-1算法實現且保密性較強的偽隨機數生成器。

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

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

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

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

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

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

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

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

解決

有兩種解決辦法:

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

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

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

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

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

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

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • centos安裝php5、卸載php、安裝php7的教程

    centos安裝php5、卸載php、安裝php7的教程

    這篇文章主要介紹了centos安裝php5、卸載php、安裝php7 ,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
    2019-09-09
  • Apache虛擬主機VirtualHost配置項詳解

    Apache虛擬主機VirtualHost配置項詳解

    在Apache中,VirtualHost容器用于定義一個虛擬主機的配置,它允許在單一的物理服務器上托管多個不同的網站,每個網站可以有自己的域名、文檔根目錄、錯誤日志等,這篇文章主要介紹了Apache虛擬主機VirtualHost配置項詳解,需要的朋友可以參考下
    2024-07-07
  • Linux平臺安裝redis及redis擴展的方法

    Linux平臺安裝redis及redis擴展的方法

    這篇文章主要介紹了Linux平臺安裝redis及redis擴展的方法,較為詳細的分析了Linux平臺redis安裝步驟、操作命令與相關注意事項,需要的朋友可以參考下
    2018-08-08
  • Linux無法為立即文檔創(chuàng)建臨時文件:設備上沒有空間的問題解決

    Linux無法為立即文檔創(chuàng)建臨時文件:設備上沒有空間的問題解決

    這篇文章主要介紹了Linux無法為立即文檔創(chuàng)建臨時文件的問題解決方案,文中通過圖文結合的形式講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2024-10-10
  • Linux Ubuntu實現查看磁盤剩余空間及內存

    Linux Ubuntu實現查看磁盤剩余空間及內存

    這篇文章主要介紹了Linux Ubuntu實現查看磁盤剩余空間及內存方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Linux中搭建完整的samba服務器全攻略(centos版)

    Linux中搭建完整的samba服務器全攻略(centos版)

    smb是一個協議名,它能被用于Web連接和客戶端與服務器之間的信息溝通。這篇文章主要介紹了Linux中搭建samba服務器全攻略(centos版),需要的朋友可以參考下
    2018-11-11
  • socket unix domain IPC的實例代碼

    socket unix domain IPC的實例代碼

    下面小編就為大家?guī)硪黄猻ocket unix domain IPC的實例代碼。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Linux虛擬機&Docker安裝RabbitMQ方式

    Linux虛擬機&Docker安裝RabbitMQ方式

    這篇文章主要介紹了Linux虛擬機&Docker安裝RabbitMQ方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • linux expect 自動登錄交換機保存配置的方法

    linux expect 自動登錄交換機保存配置的方法

    今天小編就為大家分享一篇linux expect 自動登錄交換機保存配置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • centeros7 安裝配置環(huán)境jdk1.8的教程

    centeros7 安裝配置環(huán)境jdk1.8的教程

    這篇文章主要介紹了centeros7 安裝配置環(huán)境jdk1.8的教程,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09

最新評論