在一个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. excel 经验总结

    1.2007版excel表格中怎么将使用字母+数字下拉排序 比如:A201110300001怎么在excel表格中往下拉的时候变成A201110300002.A201110300003…… 方法: 因 ...

  2. hdu1722 bjfu1258 辗转相除法

    这题就是个公式,代码极简单.但我想,真正明白这题原理的人并不多.很多人只是随便网上一搜,找到公式a了就行,其实这样对自己几乎没有提高. 鉴于网上关于这题的解题报告中几乎没有讲解原理的,我就多说几句,也 ...

  3. C#调用C++导出类(转)

    由于使用别人的Dll,导出的是一个实体类,在C#里封送很难,百度下,有个朋友回复一篇英文的,虽然不一定使用,但可以作为一个知识点,现把原文贴下: c#调用C++写的dll导出类,包含继承,重载等详细介 ...

  4. 线性模型(1):Perceptron Learning Algorithm (PLA)

    此笔记源于台湾大学林轩田老师<机器学习基石><机器学习技法> (一) PLA算法是基本的binary Classification算法. 一个基本的问题是,对于银行,假设我知道 ...

  5. bzoj 2751 [HAOI2012]容易题(easy)(数学)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2751 [题意] m个位置,已知每个位置的可能取值,问所有可能情况的每个位置的乘积的和. ...

  6. NetAdvantage 笔记

    1.UltraControlBase Class Members 1.BeginUpdate Method Sets the IsUpdating flag to true which prevent ...

  7. openstack分布式安装

    一. keystone安装笔记 初次接触openstack,在尝试过单机部署以后不是很满意,就开始着手分布式部署,主要是按照openstack官网上的安装教程来的,本人安装的是目前最新的 I 版. 以 ...

  8. 【Spark学习】Apache Spark监控与测量

    Spark版本:1.1.1 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4137952.html

  9. 在Heroku上部署MEAN

    说明:个人博客地址为edwardesire.com,欢迎前来品尝. Heroku是国外普遍使用大受好评的PaaS,支持Nodejs,基础服务(Nodejs+MongoDB)基本都是免费的.搭建MEAN ...

  10. Spring EL ternary operator (if-then-else) example

    Spring EL supports ternary operator , perform "if then else" conditional checking. For exa ...