淡定哥头像

技术文档

Linux, CentOS, Ubuntu 解决 Tomcat 启动速度巨慢问题

最近新上两个java项目,在部署按照Linux CentOS和Ubuntu服务器, 在启动tomcat的时候,加载非常慢,要5分钟左右,解决方案如下。

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

解决方案:增大/dev/random的熵池

步骤如下: 
1、安装熵服务

Linux CentOS 安装命令如下:
yum install rng-tools  

Linux Ubuntu 安装命令如下:
apt-get install rng-tools  

2、启动熵服务

Linux CentOS rngd 命令如下:
systemctl start rngd  
systemctl stop rngd  

Linux Ubuntu rngd 命令如下:
service rng-tools start
service rng-tools status
service rng-tools stop


分享到: 

* 发表评论:
Top