Tomcat的优化及多实例部署 |
您所在的位置:网站首页 › tomcat默认支持的并发数 › Tomcat的优化及多实例部署 |
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、Tomcat的优化1.tomcat启动速度优化——random2.Tomcat配置文件参数优化2.1 常用的优化相关参数2.2 优化的配置文件 二、Tomcat多实例部署1.为什么会有tomcat多实例部署2.多实例部署图示3.多实例部署的配置3.13.1 安装JDK3.2 安装启动Tomcat3.3 配置 tomcat 环境变量3.4 修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号3.5 修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量3.6 3.6 启动各 tomcat 中的 /bin/startup.sh3.7 浏览器访问测试 四、总结 一、Tomcat的优化tomcat默认安装下的缺省配置并不适合生产环境,它可能会频繁出现假死现象需要重新启动,只有通过不断压测优化才能让它高效率稳定的运行,优化主要包括三方面:分别为操作系统优化(内核、参数优化)、tomcat配置文件参数优化、java虚拟机(JVM调优) 1.tomcat启动速度优化——random第一次启动tomcat可能会发现tomcat启动很慢,默认情况下可能需要几十秒,可以修改jdk参数调优 vim /usr/java/jdk1.8.0-x64/jre/lib/security/java.security --117行--修改 securerandom.source=file:/dev/urandom # 关闭Tomcat 应用程序脚本。 /usr/local/tomcat/bin/shutdown.sh #开启Tomcat 应用程序脚本。 /usr/local/tomcat/bin/startup.shrandom:随机生成数,urandom:关闭随机生成数,会使启动的速度更快 总:jdk默认的使用/dev/random,random采用的是阻塞方式生成随机数,生成的速度很慢 2.Tomcat配置文件参数优化 2.1 常用的优化相关参数(1)redirectPort 如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的端口。 8080:tomcat的http默认监听端口 8443:https的默认端口默认不是开启的,开启去生成证书(ssl) 8005:用来关闭tomcat的服务端口,使用shutdown关闭的就是这个端口 8009:连接器的监听端口(负责和其他的http服务器建立连接),把tomcat与其他http服务集成时,就需要用到连接器 (2)maxThreads Tomcat使用线程来处理接收的每个请求,这个值表示Tomcat可创建的最大的线程数,即支持的最大并发连接数,默认值是 200。(根据Tomcat的请求数量设置) 如tomcat挂了,服务正常起来:最大线程数的问题,查看是否超过了默认值或者自己设置的最大线程数 (3)minSpareThreads 最小空闲线程数,Tomcat启动时的初始化的线程数,表示即使没有人使用也开这么多空线程等待,默认值是 10。 平常设置50-80之间即可,设置的较大会浪费资源 (4)maxSpareThreads 最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值是-1(无限制)。一般不需要指定。 (5)URIEncoding 指定 Tomcat 容器的 URL 编码格式,语言编码格式这块倒不如其它web服务器软件配置方便,需要分别指定。 一般是utf-8 (6)connectionTimeout 网络连接超时,单位:毫秒,设置为 0 表示永不超时,这样设置有隐患的。通常默认 20000 毫秒就可以。 (7)enableLookups 是否反查域名,以返回远程主机的主机名,取值为: true 或false,如果设置为 false,则直接返回 IP 地址,为了提高处理能力,应设置为 false。(如不是false会陷入循环) (8)disableUploadTimeout 上传时是否使用超时机制。应设置为 true。 (9)connectionUploadTimeout 上传超时时间,毕竟文件上传可能需要消耗更多的时间,这个根据你自己的业务需要自己调,以使servlet有较长的时间来完成它的执行,需要与上一个参数一起配合使用才会生效。 (10)acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,超过这个数的请求将不予处理,默认为 100 个。如果超出默认值或者自己设置的值,将会丢弃。 (11)compression 是否对响应的数据进行GZIP压缩,off:表示禁止压缩、 on:表示允许压缩 (文本将被压缩)、force: 表示所有情况下都进行压缩,默认值为:off——压缩数据后可以有效的减少页面的大小,一般可以减小 1/3 左右,节省带宽。 (12)compressionMinSize 表示压缩响应的最小值,只有当响应报文大小大于这个值的时候才会对报文进行压缩,如果开启了压缩功能,默认值就是 2048。 超过默认值才会开启压缩,低于不会压缩 (13)compressableMimeType 压缩类型,指定对哪些类型的文件进行数据压缩。 (14)noCompressionUserAgents=“gozilla,traviata” 对于以下的浏览器,不启用压缩 2.2 优化的配置文件 vim /usr/local/tomcat/conf/server.xml . . . . . . #端口 二、Tomcat多实例部署 1.为什么会有tomcat多实例部署高并发量的话一个tomcat只支持小部分,添加变成多实例部署会支持的更多,解决高并发的情况 多实例部署的时候端口一定要不一样,不然服务无法起来 2.多实例部署图示关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下 jdk-8u371-linux-x64.rpm apache-tomcat-8.5.16.tar.gz systemctl stop firewalld systemctl disable firewalld setenforce 0
设置JDK环境变量 #使用脚本设置jdk的环境变量 vim /etc/profile.d/java.sh #指定安装的包所在的路径家目录 export JAVA_HOME=/usr/java/jdk1.8.0-x64 #将 CLASSPATH 变量设置为当前目录、$JAVA_HOME/lib/tools.jar 和 $JAVA_HOME/lib/dt.jar 所代表的 Java 类文件搜索路径。 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar #指定变量,放入执行文件 export PATH=$JAVA_HOME/bin:$PATH测试jdk是否安装成功 vim hello.java public class hello { public static void main(String[] args){ System.out.println("Hello world!"); } }首先检查local目录下是否已经有tomcat的文件,然后根据标准路径修改配置 http://192.168.245.111:8080/ http://192.168.245.111:8081/ 优化总结: (1)提高tomcat效率:radom修改uradom启动速度 (2)连接器支持协议 (3)最大并发连接数:默认200,一般100,根据请求数量 (4)线程数最小空闲(默认值10),最大备用线程数(一般不指定) (5)tomcat URL编码格式,需要自己设置:utf-8 (6)tomcat网络连接超时,默认值200s即可 (7)是否反查域名,false设置false为了提高处理能力 (8)tomcat超时机制,应为true,一定要开启,设置超时时间 (9)tomcat对数据是否进行压缩,on允许压缩,压缩大小默认2048,超过2048才会压缩 (10)tomcat对哪些类型的文件进行压缩(image、jpg、text、html、png) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |