018tomcat启动慢处理过程

tomcat启动慢——rngd服务,熵值

1.背景:


在公司新项目中,需要在新的服务器上部署一个tomcat,但是在启动时发现,tomcat启动非常慢,有
时候需要5,6分钟,显然不符合实际生产需要,于是网上查资料发现是熵池影起的。

2.什么是随机数

生成随机数是密码学中的一项基本任务,是生成加密密钥、加密算法和加密协议所必不可少的,随机数
的质量对安全性至关重要。只有实际物理过程才是真正的随机,只有借助物理世界中事物的随机性才能
产生真正的随机数,比如真空内亚原子粒子量子涨落产生的噪音、超亮发光二极管在噪声的量子不确定
性和放射性衰变等。

3.启动慢过程分析

Tomcat是刚下载解压出来的默认配置(只保留Tomcat自带),但根据上面的启动日志,竟然花了3分多
钟,然后仔细观察日志,主要是卡在初始化Session。开始我以为云服务器的问题,然后我在本地虚拟
机上同样操作,问题重现,并且更换了Tomcat7,问题仍然出现,所以。通过搜索和分析,Tomcat的
SessionID是通过SHA1PRNG算法计算得到的,SHA1算法需要一个密钥,这个密钥在Tomcat启动的时
候随机生成一个,生成是使用了Linux随机函数生成器/dev/random。读取它相当于生成随机数字。搜
索/dev/random,大概知道是什么鬼了:/dev/random会根据 噪音 产生随机数,如果噪音不够它就
会阻塞。Linux是通过I/O,键盘终端、内存使用量、CPU利用率等方式来收集噪音的,如果噪音不够生
成随机数的时候就会被阻塞。

4.解决方案

rngd服务来增加熵值,建议用此办法,因为别的软件也可能需要大的熵值
watch -n 1 cat /proc/sys/kernel/random/entropy_avail 
启动前在100~200之间,启动后在3000左右

rngd
yum -y install rng-tools
echo 'EXTRAOPTIONS="--rng-device /dev/urandom"' >/etc/sysconfig/rngd
service rngd start
chkconfig rngd on
chkconfig --list rngd
或在/etc/rc.d/rc.local中加入
rngd -r /dev/urandom -o /dev/random &
此办法只能解决tomcat的启动问题
$JAVA_PATH/jre/lib/security/java.security文件
修改securerandom.source=file:/dev/urandom为
securerandom.source=file:/dev/./urandom

5.原文链接:

http://blog.luojh.cn/2017/01/14/centos7xia-an-zhuang-tomcat8bing-qie-jie-jue-qi-dong-su-du-ju-man-de-wen-ti/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • a ai an ang ao ba bai ban bang bao bei ben beng bi bian b...
    XYiP阅读 5,708评论 0 1
  • 诗经全文及译文 《诗经》现存诗歌305篇,包括西周初年到春秋中叶共 500 余年的民歌和朝庙乐章,分为风、雅、颂三...
    观茉阅读 70,653评论 0 18
  • 天地玄黄 宇宙洪荒 日月盈昃 辰宿列张 寒来暑往 秋收冬藏 天:颠也,至高无上。从一、大。他前切。 地:元气初分,...
    若零F阅读 9,379评论 2 23
  • 如何写出一片优秀的散文,诗词或者美文?必定离不开韵脚。 一篇运用修辞手法或者押韵的文章,阅读起来既有韵味,又朗朗上...
    合小沫阅读 90,923评论 38 111
  • ["a", "啊", "阿", "呵"], ["ai", "埃", "挨", "哎", "唉", "哀", "皑"...
    XYiP阅读 12,920评论 1 3

友情链接更多精彩内容