Tomcat启动慢

现象

tomcat启动时,每次Root WebApplicationContext: initialization completed in 这个地方等很久

原因

资源不够,在等待资源
Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥。为了提高安全性Tomcat在启动的时候回通过随机生成一个密钥。
/dev/random会根据噪音产生随机数,如果噪音不够它就会阻塞。Linux是通过I/O,键盘终端、内存使用量、CPU利用率等方式来收集噪音的,如果噪音不够生成随机数的时候就会被阻塞。

解决办法

  1. 通过修改Tomcat启动文件 -Djava.security.egd=file:/dev/urandom
  2. 通过修改JRE中的java.security文件securerandom.source=file:/dev/urandom
  3. 增加Linux系统的熵池
1.查看系统熵池 cat /proc/cpuinfo | grep rdrand
2.安装rngd服务(熵服务)yum install -y rngd-tools 或者 yum install-y rng-tools
3.启动服务 systemctl start rngd
4.复制cp /usr/lib/systemd/system/rngd.service /etc/systemd/system
5.修改 vi /etc/systemd/system/rngd.service内容 ExecStart=/sbin/rngd -f -r /dev/urandom
6.重新载入服务 systemctl daemon-reload
7.重启服务 systemctl restart rngd
8.再次查看熵池大小 cat /proc/cpuinfo | grep rdrand

转载:https://www.jianshu.com/p/576d356dc163

阅读更多

没有更多推荐了,返回首页