tomcat启动时间过长的问题
阿里云下的服务器安装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启动时间过长的问题的更多相关文章
- SecureRandom生成随机数超慢 导致tomcat启动时间过长的解决办法
用腾讯云的CentOS 7.2 CVM 服务器跑Tomcat时发现,Tomcat启动的特别慢,通过查看日志,发现时间主要花在实例化SecureRandom对象上了. 由该日志可以看出,实例化该对象使用 ...
- Springmvc+Hibernate在Eclipse启动Tomcat需要很长时间的解决方法
最近在学习SpringMvc开发,有一个提问困扰了很久,就是在Eclipse启动Tomcat需要很长时间,大概要1分多钟. 启动日志: 九月 08, 2016 8:59:01 下午 org.apach ...
- 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 ...
- eclipse中如何设置tomcat启动时间
现象:在eclipse中启动tomcat总是提示“Server Tomcat v5.5 Server @ localhost was unable to start within 45 seconds ...
- tomcat启动时间修改
Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the server requires ...
- Tomcat post参数长处理
如下图所示:增加maxPostSize="-1"属性即可
- 关于Unity启动时间过长(启动黑屏时间长)的问题!!! 牛逼... 思路不错...
http://blog.csdn.net/u012169685/article/details/52068809
- TOMCAT启动到一半停止如何解决
当你的项目过大的时候,往往会导致你的TOMCAT启动时间过长,启动失败,遇到该情况可以试一下下面两招: TOmcat启动到一半的时候停止了,以下原因: 1. tomcat启动时间超过了设置时间: 解 ...
- Nginx与Tomcat、Client之间请求的长连接配置不一致问题解决[转]
http://bert82503.iteye.com/blog/2152613 前些天,线上出现“服务端长连接与客户端短连接引起Nginx的Writing.Active连接数过高问题”,这个是由于“服 ...
随机推荐
- JavaScript函数的柯里化(currying)
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/currying.html 什么是js函数的currying /柯里化? 说到js的柯里化,相信很多朋友都会头大.或 ...
- NLP+句法结构(三)︱中文句法结构(CIPS2016、依存句法、文法)
摘录自:CIPS2016 中文信息处理报告<第一章 词法和句法分析研究进展.现状及趋势>P8 -P11 CIPS2016> 中文信息处理报告下载链接:http://cips-uplo ...
- windowsXP下搭建JAVA环境教程
一.工具准备安装JKD6:传送门:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-w ...
- 错误代码: 1247 Reference 'startTime' not supported (forward reference in item list)
1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:SELECT a.createUserId AS typeId, (SELE ...
- Caused by:org.hibernate.MappingNotFoundException:resouce:com/you/model/Monkey.hbm.xml not found
1.错误描述 Caused by:org.hibernate.MappingNotFoundException:resouce:com/you/model/Monkey.hbm.xml not fou ...
- E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用)
1 错误描述 youhaidong@youhaidong:~$ sudo apt-get update E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂 ...
- 配置文件properties读取使用的好方法
首先在spring配置文件applicationContext.xml中配置. <bean id="placeholderConfig" class="com.be ...
- 微信小程序hidden
首先hidden默认在display:block;情况下是会默认生效的: but在很多时候只在初始值下有效, 在data下声明 flag:true; 方法中: 无效,所以尽量不要使用hidden这个属 ...
- 简单的cookie读写封装
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【BZOJ3675】序列分割(斜率优化,动态规划)
[BZOJ3675]序列分割(斜率优化,动态规划) 题面 Description 小H最近迷上了一个分隔序列的游戏.在这个游戏里,小H需要将一个长度为n的非负整数序列分割成k+1个非空的子序列.为了得 ...