在一个ubuntu14新环境部署tomcat,通过CI启动一个应用时,启动耗时达到15分钟之久。仔细看tomcat输出的耗时统计日志发现如下日志:
Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took[97431]
在stackoverflow上逛了一会发现如下解释:
 
试了下,问题解决了。那么为什么有的机器上会这样,而有的机器正常呢?参考:http://en.wikipedia.org/wiki//dev/random#Linux
问题的核心指向随机密码生成器中,关于环境噪音采集部分的处理。所谓环境噪音,就是来自各个设备驱动与其它来源的二进制数据,也称之为熵。熵池则是存储这些噪音数据的地方。当熵池为空的时候,采用/dev/random会存在阻塞。
但是,检查环境配置,安装的java是采用/dev/urandom进行处理。其模式是熵池为空时,非阻塞。很显然,还不止如此,从stackoverflow链接中可以找到一段描述,解释了为何jdk用了/dev/urandom,但是还是不生效。
随机数生成器,基于SHA1PRNG。而SHA1PRNG重度依赖高质量的种子,如果种子不够好,随机数结果将可被预测。因此开发人员需要确保/dev/random被用作熵的来源,即便JVM配置为使用/dev/urandom。
所以切换熵源为/dev/urandom,也需要确保/dev/random有足够的熵。如果系统有硬件RNG,通过安装rng-tools能够提供足够的熵。否则就需要安装haveged来提供一个足够好的熵来源而不依赖硬件的RNG。在虚拟机中,rng-tools能够从主机中获取虚拟硬件RNG来提供熵。EGD作为此环境下的一个替代,但是在ubuntu的资源库内,没有提供此软件支持,所以就存在隐患。

ubuntu下tomcat启动巨慢分析的更多相关文章

  1. ubuntu下tomcat的安装及注册成系统服务

    在ubuntu下tomcat的安装有两种方式,第一种是下载二进制文件,解压安装:第二种则是使用apt-get自动下载.这里不推荐第二种方法安装,因为这种方法安装会像天女散花一样把安装的文件散落在系统的 ...

  2. MyEclipse 下 Tomcat启动变慢如何解决

    MyEclipse   下  Tomcat启动变慢如何解决 项目使用debug启动有时候会突然变得非常慢.不但启动慢,启动之后连打开项目页面也很慢,是日常的4,5倍.可以有下面的几种解决方法: 1. ...

  3. liunx下tomcat启动报错

    liunx下tomcat启动 Cannot find ./catalina.sh 2013-08-23 11:50 1521人阅读 评论(0) 收藏 举报 Cannot find ./catalina ...

  4. Ubuntu下Nginx启动、停止等常用命令

    本文详细介绍Ubuntu下Nginx启动.停止等常用命令.在开发过程中,我们会经常的修改Nginx的配置文件,每次修改配置文件都可以先测试下本次修改的配置文件是否正确,可以利用以下命令: servic ...

  5. CentOS7.4 系统下 Tomcat 启动慢解决方法

    CentOS7.4 系统下 Tomcat 启动慢解决的方法   首先查看日志信息,查看因为什么而启动慢 在CentOS7启动Tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是s ...

  6. Ubuntu下Tomcat绑定80端口(zz)

    Ubuntu下Tomcat绑定80端口 来源:本站转载 作者:佚名 时间:2011-02-22 TAG: 工作环境迁移到了Ubuntu,很多东西发生了变化,比如原先配置tomcat端口.只需要配置se ...

  7. Struts2环境下Tomcat启动异常:Exception starting filter struts2,报了一个java.lang.ClassNotFoundException

    在写一个struts2+hibernate整合的小例子时,启动Tomcat服务器,报了一个: 严重: Exception starting filter struts2java.lang.ClassN ...

  8. linux下tomcat启动慢解决方法

    前言 最近在工作中遇到一个问题,在Linux下Tomcat 8启动很慢,且日志上无任何错误,在日志中查看到如下信息: Log4j:[2017-08-2715:47:11] INFO ReadPrope ...

  9. CentOS7下Tomcat启动慢的原因及解决方案

    现象 在一次CentOS 7系统中安装Tomcat,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的.Tocmat的Session ID是通过SHA1算法 ...

随机推荐

  1. linux挂载问题解决

    1. 挂载光盘 </pre></p><p><pre name="code" class="plain">[roo ...

  2. 检查ept

    cat /proc/cpuinfo | grep ept                                检查cpu是否支持ept cat /sys/module/kvm_intel/p ...

  3. [HIve - LanguageManual] Join Optimization (不懂)

    Join Optimization Join Optimization Improvements to the Hive Optimizer Star Join Optimization Star S ...

  4. MVC使用Google OAuth[OWIN]注意事項

    1.前提條件,申請一個client id,頁面:https://console.developers.google.com/ 2.添加連接域名,javascript那欄位為域名即可,另一欄需要加上具體 ...

  5. 现代程序设计——homework-07

    1.写在前面 不得不很惭愧地说,在看这些博客之前,我对C++的了解仅限于上过一门特别水的关于C++的公选课.一门只有五节课的专业选修课,写过一点点符合C++语法语法规则的类C程序,偶尔在论坛.博客中看 ...

  6. 设置结点的ID为固定ID

    https://www.java.net//forum/topic/jxta/jxta-community-forum/how-initialize-pse-jxse-27 ————————————— ...

  7. 【转】Xcode 插件优缺点对比(推荐 20 款插件)

    [转自]http://www.cnblogs.com/dsxniubility/p/5099191.html 1.Alcatraz 类似于管理第三方库的cocoapods,管理插件也有个Alcatra ...

  8. CodeForces 682E Alyona and Triangles (计算几何)

    Alyona and Triangles 题目连接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/J Description You ar ...

  9. POJ 3259 Wormholes(最短路,判断有没有负环回路)

    Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 24249   Accepted: 8652 Descri ...

  10. Nginx 禁止IP访问

    我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了 ...