摘要: 在本地开发环境,应用正常启动。 在CentOS测试环境,应用启动速度也是正常的。 但是在阿里云的生产环境,tomcat启动超级慢,并且在最终打印出来以下内容: org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [152,149] milliseconds. 152秒,这可以就是2分钟啊。

在本地开发环境,应用正常启动。

在CentOS测试环境,应用启动速度也是正常的。

但是在阿里云的生产环境,tomcat启动超级慢,并且在最终打印出来以下内容:

org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [152,149] milliseconds.

152秒,这可以就是2分钟啊。并且如果多次启动,可能需要等待更久,有几次上线只是在启动时等待了5分钟多。

经过百度,发现是Tomcat 7/8使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom类产生安全随机类SecureRandom的实例作为会话ID时,由于堵塞,造成时间上的消耗。

解决方案如下,由于第一种需要修改catalina.sh,在生产环境没有尝试。而是采用的第二种的方式。
有两种解决办法:
1)在Tomcat环境中解决
可以通过配置JRE使用非阻塞的Entropy Source。
在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。
加入后再启动Tomcat,整个启动耗时下降到Server startup in 2912 ms。
2)【已验证】在JVM环境中解决
打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:
securerandom.source=file:/dev/urandom
替换成
securerandom.source=file:/dev/./urandom

用云栖社区APP,舒服~

原文链接

转载于:https://www.cnblogs.com/jzy996492849/p/7054101.html

CentOS环境下tomcat启动超级慢的解决方案相关推荐

  1. 解决Linux环境下Tomcat启动卡住问题

    解决Linux环境下Tomcat启动卡住问题 参考文章: (1)解决Linux环境下Tomcat启动卡住问题 (2)https://www.cnblogs.com/0xcafedaddy/p/7193 ...

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

    Struts2环境下Tomcat启动异常:Exception starting filter struts2,报了一个java.lang.ClassNotFoundException 参考文章: (1 ...

  3. java剑士7723,linux 环境下tomcat启动失败问题

    严重: Error deploying web application directory news java.lang.ClassFormatError: com/sun/faces/config/ ...

  4. 解决centos下tomcat启动太慢 JDBC连接oracle太慢的问题

    解决centos下tomcat启动太慢 & JDBC连接oracle太慢的问题 参考文章: (1)解决centos下tomcat启动太慢 & JDBC连接oracle太慢的问题 (2) ...

  5. Centos环境下部署游戏服务器-软件安装

    这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个n ...

  6. linux编译ace tao,CentOS环境下ACE编译指南

    CentOS环境下ACE编译指南 1.环境说明: (1)CentOS6.3 (2) ACE6.10 2.编译步骤: (1)定义环境变量: ACE_ROOT=/root/work/cots/ACE_wr ...

  7. Linux环境下Tomcat部署Solr4.x

    Linux环境下Tomcat部署Solr 最近接手了公司搜索相关的业务,由于其使用的是Solr,故趁着周末自己鼓捣下; 由于业务上使用的是Solr4.2.0版本,因此在学习时,使用相对较老的版本Sol ...

  8. windows环境下tomcat实现日志切割

    前言   当我们在遇到一些老的SSM框架的项目时,我们通常会借助tomcat来启动服务.如果项目并没有做日志处理,但是生产环境有时候又需要进行日志排查,这时候就有点犯难了.   其实windos环境下 ...

  9. java linux 起多个进程_linux下tomcat启动后出现多个java进程

    偶尔发现linux下tomcat启动后出现多个java进程,如下: 000 S     0  4789     1  0  85   0    - 75083 schedu pts/1    00:0 ...

最新文章

  1. Qt中两种定时器用法
  2. 查看删除的帐号的DN名称(活动目录快照配置管理系列六)
  3. mysql php 入门_第一节 数据库概述_MySQL_php入门教程
  4. powerdns mysql_安装PowerDNS(使用MySQL后端)和Poweradmin在Debian Lenny
  5. Amazon、Linux基金会开发边缘网络交换器操作系统
  6. 数据结构与算法--死磕二叉树
  7. Java 8的8个新功能
  8. T-SQL 中ON和WHERE的区别
  9. 解决:未能将管道连接到虚拟机: 所有的管道范例都在使用中。
  10. 从pg_hba.conf文件谈谈postgresql的连接认证
  11. day07-vue项目-搭建项目到登录功能
  12. [转载] 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis
  13. ssh登录日志,ssh登录记录,最近ssh登录
  14. [物理学与PDEs]第5章习题6 各向同性材料时强椭圆性条件的等价条件
  15. 工业循环冷却水处理设计规范_循环冷却水系统及其水处理
  16. 电子技术基础(三)_第3章集成运算放大器及其应用__基本运算电路
  17. Java11新特性及代码示例
  18. nginxconsul
  19. WPF 文件、文件夹操作
  20. 基因编辑最新研究成果进展(2021年11月)

热门文章

  1. java进入编程界面_java – 编程到界面是什么意思?
  2. html圆角兼容jq,IE兼容css3圆角的htc解决方法
  3. html audio 本地无效源,音频文件无法播放?H5的audio标签在win7下运行时报错“无效源”?...
  4. 对象存储使用案例_连云数据都有“对象存储”了,你还是单身?
  5. 编码调试:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xaf in position 12: illegal multibyte sequen
  6. export default 和 export 区别(ES6)
  7. 2021-01-07 matlab数值分析  插值法 拉格朗日插值法 牛顿插值法
  8. oracle性能问题排查,性能测试Oracle消耗排查记录
  9. 机器学习:林智仁libsvm 工具箱 在matlab下的应用总结
  10. 自己动手实现的 Spring IOC 和 AOP - 上篇