您的位置:首页 > 运维架构 > Tomcat

CentOS上tomcat启动巨慢问题

2017-09-03 13:01 309 查看
原文:http://bbs.qcloud.com/thread-25271-1-1.html

Tomcat7在Windows下启动一直正常,却在linux下启动巨慢。期间多次kill掉启动进程再重新启动,然并卵。。。

查阅了资料后发现,启动过慢主要是卡在初始化session(查看tomcat日志)。

Tomcat 的 SessionID 是通过 SHA1PRNG 算法计算得到的,SHA1 算法需要一个密钥,这个密钥在 Tomcat 启动的时候随机生成一个,生成是使用了 Linux 随机函数生成器/dev/random,读取它相当于生成随机数字。/dev/random会根据 噪音 产生随机数,如果噪音不够它就会阻塞。Linux
是通过 I/O,键盘终端、内存使用量、CPU 利用率等方式来收集噪音的,如果噪音不够生成随机数的时候就会被阻塞。

推荐解决办法:

安装熵服务

yum install rng-tools

启动熵服务

systemctl start rngd

tomcat启动正常。

附:部分tomcat下载后直接解压,执行 sh startup.sh 无法启动tomcat(java环境正常!) 

原因:tomcat/bin/下的 catalina.sh 没有x权限,startup.sh启动tomcat是调用catalina.sh启动的。(catalina.sh才是最终的启动脚本,startup.sh、shutdown.sh只是使用了不同的参数调用了它!)

解决办法:chmod +x catalina.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: