优化tomcat启动速度
在java.security中修改参数
vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
进行如下修改:
/dev/random设备保证了数据的随机性,但是/dev/random的随机数池(random pool)依赖于系统中断,当系统中断数不足时,/dev/random会一直锁定,进程就会进入等待状态。/dev/urandom不依赖系统中断,运行起来会更快一点,但是数据的随机性不高也导致了安全性不高
设置完记得重启:
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
tomcat目录说明:
- bin:存放启动和关闭Tomcat的脚本文件,比较常用的是 catalina.sh、startup.sh、shutdown.sh三个文件
- conf:存放Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件
- server.xml:Tomcat的主配置文件,包含Service,Connector,Engine,Realm,Valve,Hosts主组件的相关配置信息
- context.xml:所有host的默认配置信息
- tomcat-user.xml:Realm认证时用到的相关角色、用户和密码等信息
- web.xml:遵循Servlet规范标准的配置文件,用于配置servlet
- lib:存放Tomcat运行需要的库文件的jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的jar 包
- logs:存放 Tomcat 执行时的日志
- temp:存放 Tomcat 运行时产生的文件
- webapps:存放 Tomcat 默认的 Web 应用部署目录
- work:Tomcat工作日录,存放jsp编译后产生的class文件,一般清除Tomcat缓存的时候会使用到
- src:存放Tomcat 的源代码
- doc:存放Tomcat文档
Tomcat 配置文件参数优化
- redirectPort:如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的端口
- maxThreads:Tomcat可创建的最大的线程数,即支持的最大并发连接数,默认值是 200
- minSpareThreads:最小空闲线程数,表示即使没有人使用也开这么多空线程等待,默认值是 10
- maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值是-1(无限制),一般不需要指定
- URIEncoding:指定 Tomcat 容器的 URI 编码格式
- connnectionTimeout:网络连接超时,单位:毫秒,设置为 0 表示永不超时。通常默认 20000 毫秒就可以
- enableLookups:是否反查域名,以返回远程主机的主机名,取值为:true 或 false,如果设置为 false,则直接返回 IP 地址,为了提高处理能力,应设置为 false
- disableUploadTimeout:上传时是否使用超时机制。应设置为 true
- connectionUploadTimeout:上传超时时间,需要与上一个参数一起配合使用才会生效
- acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,超过这个数的请求将不予处理,默认为 100 个
- compression:是否对响应的数据进行GZIP压缩,off:表示禁止压缩;on:表示允许压缩(文本将被压缩)、force:表示所有情况下都进行压缩,默认值为 off,压缩数据后可以有效的减少页面的大小,一般可以减小 1/3 左右,节省带宽
- compressionMinSize:表示压缩响应的最小值,只有当响应报文大小大于这个值的时候才会对报文进行压缩,如果开启了压缩功能,默认值就是 2048
- compressableMimeType:压缩类型,指定对哪些类型的文件进行数据压缩
- noCompressionUserAgents:对于以下的浏览器,不启用压缩
推荐配置:(/usr/local/tomcat/conf/server.xml)
<Connector port="8080" protocol="HTTP/11.1"
connectionTimeout="20000"
redirectPort="8443"
minSpareThreads="50"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="300"
maxThreads="500"
processorCache="500"
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image /jpg,image/png"/>