ECS Ubuntu云服务器Tomcat启动超级慢问题处理
 2018-01-09 13:45:11   491   0   

本文最后更新于天前,文中介绍内容及环境可能已不适用.请谨慎参考.

一.问题

其实这个问题在使用云服务器的第二天就出现了,

当时更新了下代码,重启tomcat,直接就卡住了,没有日志,没有报错,

直接就把我搞蒙逼了,当时还以为是服务器太差了吧,哈哈。

随机在另外的tty上瞎点了几下,桌面乱动了下,多用鼠标键盘操作了下,结果就好了,当时还真没注意到这是个问题。

 

后来在路上回想,越想越觉得不对,里面肯定有问题,随便搜索了下,果然有问题!

一切都是linux系统下随机数的生成机制在作怪。

tomcat启动过程中需要用到随机数,默认使用的为/dev/random 生成的真随机数,

再tomcat获取到足够多的随机数前,启动过程会卡住,一直等待,直到随机数足够,能完成随机密钥的生成。

WARNING [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecur
  3 Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [33,544] milliseconds.

当系统启动的东西很少/操作也很少的情况下,没有足够的噪点数据来产生绝对的随机数,这样就会一直等待。。。33秒。。

使用以下命令查看,当发现数值很小的时候,可以确定是这个问题导致的卡住无响应。

cat  /proc/sys/kernel/random/entropy_avail

会发现数值很小。

/usr/local# cat  /proc/sys/kernel/random/entropy_avail
190

 

二.处理

解决方法网络上也有很多了。

直接修改tomcat/修改jdk配置。

这就不说了。

最终目的就是增大entropy_avail,或者说是加快这个数字的产生,以让tomcat能够有充足的随机数来源.

使用工具 rng-tools.

Centos:

yum install rng-tools # 安装rngd服务(熵服务,增大熵池)

systemctl start rngd  # 启动服务

 

Ubuntu:

sudo apt-get install rng-tools

rngd  -r /dev/urandom  -o /dev/random

启动rng-服务后,用程序辅助生成随机数/填充.

然后在看数据

 cat  /proc/sys/kernel/random/entropy_avail
 3099

立马就大了。

一旦有足够的随机数,问题就解决了,这下就不用卡了。- -!


 2018-07-16 15:25:31 
 1

  本文基于CC BY-NC-ND 4.0 许可协议发布,作者:野生的喵喵 固定链接: 【ECS Ubuntu云服务器Tomcat启动超级慢问题处理】 转载请注明



发表新的评论
{{s_uid}}   , 欢迎回来.
您的称呼(*必填):
您的邮箱地址(*必填,您的邮箱地址不会公开,仅作为有回复后的消息通知手段):
您的站点地址(选填):
留言:

∑( ° △ °|||)︴

(๑•̀ㅂ•́)و✧
<( ̄) ̄)>
[]~( ̄▽ ̄)~*
( ̄ˇ ̄)
[]~( ̄▽ ̄)~*
( ̄ˇ ̄)
╮( ̄▽ ̄)╭
( ̄ε(# ̄)
(⊙ˍ⊙)
( ̄▽ ̄)~*
∑( ° △ °|||)︴

文章分类

可能喜欢 

KxのBook@Copyright 2017- All Rights Reserved
Designed and themed by 野生的喵喵   1623837   44992