tomcat的启动需要产生session id,这个产生需要通过java.security.SecureRandom生成随机数来实现:

/dev/random :阻塞型,读取它就会产生随机数据,但该数据取决于熵池噪声,当熵池空了,对/dev/random 的读操作也将会被阻塞。 /dev/urandom: 非阻塞的随机数产生器,它会重复使用熵池中的数据以产生伪随机数据。这表示对/dev/urandom的读取操作不会产生阻塞,但其输出的熵可能小于/dev/random的。它可以作为生成较低强度密码的伪随机数生成器,不建议用于生成高强度长期密码。

然后查看我的more /usr/java/jdk1.8.0_192-amd64/jre/lib/security/java.security 文件:

于是你可以修改tomcat的启动参数:-Djava.security.egd=file:/dev/urandom

或者是更改java的java.security 文件:securerandom.source=file:/dev/urandom

但是我采用的是安装RNGD服务。

yum -y install rng-tools

service rngd start chkconfig rngd on

然后可以看到:cat /proc/sys/kernel/random/entropy_avail的数值变大很多:

这样一定程度上解决了tomcat的启动速度问题。至于tomcat的BIO NIO APR启动方式在以后抽时间再说吧,因为需要赶项目进度去了,做一些server的配置参数修改,注意考虑到风险问题,一定要关闭自动部署功能。Host name="localhost" appBase="/datas/webapps/nCov" unpackWARs="false" autoDeploy="false"


maxThreads tomcat能创建来处理请求的最大线程数,默认值为200 我设定500观察
minProcessors 启动时创建的线程数(最小线程数)
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到队列中的请求数,,超过这个数的请求将拒绝连接 默认值为100 我设定500观察
compressibleMimeType 该值用来指定哪些文件类型的文件可以进行压缩,默认值为:text/html,text/xml,text/plain,text/css,text/javascript,application/javascript
compression 开启gzip 压缩,可以接受的值是 "off"(禁用压缩),"on"(开启压缩),"force(强制压缩)","1-9"(等效于开启压缩,并且设定压缩等级),开启了压缩,也就意味着要占用更多的cpu资源 这里开启on
keepAliveTimeout 指connector两个HTTP请求直接的等待时间,超过该时间没有接收到第二个HTTP请求就关闭连接,默认是使用connectionTimeout 的值,单位为毫秒 我设定30000观察
processorCache 进程缓冲器,默认值是maxThreads的值,使用好该值可以提升并发请求。 我设定500观察

By 三疯

在 “Tomcat生产环境参数优化(二)” 有 1 条评论
  1. Connector port="8080" protocol="HTTP/1.1" maxThreads="500" minProcessors="100" acceptCount="500" compression="on" keepAliveTimeout="30000" processorCache="500" connectionTimeout="2000" redirectPort="8443" URIEncoding="utf-8"

三疯进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注