博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS7 中解决Tomcat8启动速度巨慢的问题
阅读量:5994 次
发布时间:2019-06-20

本文共 770 字,大约阅读时间需要 2 分钟。

hot3.png

1. 问题分析 

观察Tomcat日志,发现主要初始化Session缓慢。通过搜索了解到Tomcat的SessionID是通过SHA1PRNG算法计算得到的,SHA1算法需要在 Tomcat启动的时候随机生成一个,生成是使用了Linux 随机函数生成器/dev/random,读取它相当于生成随机数字。搜索/dev/random,大概了解了:/dev/random会根据熵池产生随机数,如果熵池不够它就会阻塞。如果熵池不够生成随机数的时候就会被阻塞。 

2. 解决问题 

简单的有两种方式解决:     
a.增大/dev/random的熵池;熵池不够大,那就增大它。 
安装熵服务yum install rng-tools 
启动熵服务systemctl start rngd 
也可以使用/dev/unrandom来模拟: 
cp /usr/lib/systemd/system/rngd.service /etc/systemd/system 
vim /etc/systemd/system/rngd.service 
内容: ExecStart=/sbin/rngd -f -r /dev/urandom 

重新载入服务 

systemctl daemon-reload 
systemctl restart rngd 

b.使用伪随机函数生成器/dev/unrandom 

/dev/urandom并不是真正的随机行为,只是重复率较低 
通过修改Tomcat启动文件 -Djava.security.egd=file:/dev/urandom 
通过修改JRE中的java.security文件 securerandom.source=file:/dev/urandom 

转载于:https://my.oschina.net/my1313677/blog/1935736

你可能感兴趣的文章
关于IE8不支持document.getElementById().innerHTML的问题
查看>>
用rand()和srand()产生伪随机数的方法总结 【转】
查看>>
二分搜索及其扩展
查看>>
缓存篇(Cache)~大话开篇
查看>>
看SQL SERVER数据库当前连接数
查看>>
LintCode: Restore IP Address
查看>>
LintCode: Valid Parentheses
查看>>
事件引入和本质
查看>>
apiCloud事件发送与监听
查看>>
成功是什么?
查看>>
Ext.form 表单为什么第二次就不正常显示
查看>>
SQL Server Collation介绍及其变更对数据的影响
查看>>
CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins
查看>>
Android Studio 中报 【gradle project sync failed】 错误解决方法
查看>>
oracle 【数据库 库软件(变量编写)】安装
查看>>
关于 Mybatis 设置懒加载无效的问题
查看>>
ubuntu下sqlplus上下光标键乱码解决方法
查看>>
提取Word中指定内容
查看>>
Json处理换行符
查看>>
jquery获取选中的select,选中的radio值
查看>>