阿里云下的服务器安装jdk1.8和tomcat之后出现了一个问题,初次运行tomcat没有问题,可以正常访问tomcat首页,但是关闭之后再重启就发现tomcat首页刷不出来。而且再次关闭之后还报错了。

报错信息上显示Tomcat may not be running,说明tomcat还没有启动,说明之前开启tomcat就出现问题了。

方案一:

官方的文档里有这个问题的解释:修改$JAVA_HOME/jre/lib/security/java.security文件,替换securerandom.source=file:/dev/random为file:/dev/urandom。对所有使用JVM的应用生效。(实际修改为:securerandom.source=file:/dev/./urandom)。修改之后重启tomcat就很快了。

关于这个random和urandom,这个是linux的提供的随机伪设备,提供永不为空的随机字节数据流,许多加密解密程序需要用到它们提供的随机数。它们的区别在于:random 依赖于系统中断,因此在系统的中断数不足时,/dev/random设备会一直封锁,尝试读取的进程就会进入等待状态,直到系统的中断数充分够用。这也就是tomcat启动变慢的原因;而urandom不依赖系统的中断,也就不会造成进程忙等待,但是数据的随机性也不高。

可以通过od转化为16进制后查看生成的随机数据:

但是使用random生成随机数的时候一直刷不出来:

方案二:

random是依赖于系统中断产生的随机数,因此可以使用外部进程产生中断,增加产生随机数的速度,安装rng-tools这个软件可以增加产生随机数的速度。

yum install rng-tools

systemctl start rngd // 开启服务

然后再使用random生成随机数:

这次生成随机数就很快了,安装了rng-tools之后就直接可以使用random生成随机数,而不需要去修改$JAVA_HOME/jre/lib/security/java.security中的生成随机数的方式了。

tomcat启动时间过长的问题的更多相关文章

  1. SecureRandom生成随机数超慢 导致tomcat启动时间过长的解决办法

    用腾讯云的CentOS 7.2 CVM 服务器跑Tomcat时发现,Tomcat启动的特别慢,通过查看日志,发现时间主要花在实例化SecureRandom对象上了. 由该日志可以看出,实例化该对象使用 ...

  2. Springmvc+Hibernate在Eclipse启动Tomcat需要很长时间的解决方法

    最近在学习SpringMvc开发,有一个提问困扰了很久,就是在Eclipse启动Tomcat需要很长时间,大概要1分多钟. 启动日志: 九月 08, 2016 8:59:01 下午 org.apach ...

  3. tomcat启动时间5分钟左右org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [342,445] milliseconds.

    org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance ...

  4. eclipse中如何设置tomcat启动时间

    现象:在eclipse中启动tomcat总是提示“Server Tomcat v5.5 Server @ localhost was unable to start within 45 seconds ...

  5. tomcat启动时间修改

    Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the server requires ...

  6. Tomcat post参数长处理

    如下图所示:增加maxPostSize="-1"属性即可

  7. 关于Unity启动时间过长(启动黑屏时间长)的问题!!! 牛逼... 思路不错...

    http://blog.csdn.net/u012169685/article/details/52068809

  8. TOMCAT启动到一半停止如何解决

    当你的项目过大的时候,往往会导致你的TOMCAT启动时间过长,启动失败,遇到该情况可以试一下下面两招: TOmcat启动到一半的时候停止了,以下原因: 1.  tomcat启动时间超过了设置时间: 解 ...

  9. Nginx与Tomcat、Client之间请求的长连接配置不一致问题解决[转]

    http://bert82503.iteye.com/blog/2152613 前些天,线上出现“服务端长连接与客户端短连接引起Nginx的Writing.Active连接数过高问题”,这个是由于“服 ...

随机推荐

  1. linux内核体系结构

    linux内核第一记   1.linux体系结构   从上图可知,Linux分为:用户空间和内核空间.内核空间和用户空间是程序执行的两种不同的状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的 ...

  2. mysql学习笔记02 CRUD操作

    添加数据insert into 表名(字段列表) values(对应字段的列表值) 查询数据 select *from 表名 where 条件select *from 表名 where 1条件 1表示 ...

  3. mysql学习笔记02 表的操作

    创建数据表create  table table_name(//定义表的列的结构)创建表 先分析需要保存的实体数据,荣有哪些属性,这些属性应该有哪些属性列的定义 列名 列的数据类型 {} 进行表操作时 ...

  4. Eviews 8.0&9.0界面新功能介绍

    Eviews 8.0&9.0界面新功能介绍 本文其中一些是自己的整理,也有一些是经管之家论坛中一位热心.好学坛友的整理,其中只是简单介绍一下这两个新版本的部分特性,分享出来,有兴趣的看客可以一 ...

  5. (二十)java小练习二

    练习4:定义一个整数数组,编写程序求出一个数组的基数和偶数个数 package demo; /*  * 定义一个整数数组,编写程序求出一个数组的基数和偶数个数  */ public class Tes ...

  6. 使用WebApiClient请求和管理Restful Api

    前言 本篇文章的内容是WebApiClient应用说明篇,如果你没有了解过WebApiClient,可以先阅读以下相关文章: WebApi client 的面向切面编程 我来给.Net设计一款Http ...

  7. json格式数据整理

    一,json的两种数据结构 1.1,对象 对象结构以"{"大括号开始,以"}"大括号结束.中间部分由0或多个以","分隔的"key ...

  8. table问题汇总

    平时要使用 table 的次数说多不多,说少不少,但每次使用必定会被几个问题"坑"一下,所以这篇博客用来记录下table那些"小坑".但 table 也会有很多 ...

  9. Python机器学习介绍(Python Machine Learning 中文版)

    Python机器学习 机器学习,如今最令人振奋的计算机领域之一.看看那些大公司,Google.Facebook.Apple.Amazon早已展开了一场关于机器学习的军备竞赛.从手机上的语音助手.垃圾邮 ...

  10. link-cut-tree 简单介绍

    link-cut-tree 简单介绍 前言:这个算法似乎机房全都会,就我不会了TAT...强行搞了很久,勉强照着别人代码抄了一遍qwq 这个本人看论文实在看不懂,太菜了啊!!! 只好直接看如何实现.. ...