首页 > 编程知识 正文

tomcat配置详解,tomcat热部署设置

时间:2023-05-04 18:14:52 阅读:25029 作者:2971

1、目录:

a、基础调谐

b、JVM优化

c .高级调谐

2、基础调优:

2.1、tomcat各版本的优化参数略有不同,启动tomcat后可以访问[ http://127.0.0.133608080/docs/config ]查看说明

2.2、配置tomcat管理员账户,编辑/opt/tomcat7/strong悍树叶/conf/tomcat-users.xml文件,ygdj添加以下信息:

角色角色名称=' manager '/role rolename=' manager-GUI '/role rolename=' admin '/role rolename=' admin-GUI '/usus

配置完成后登录/进入主屏幕http://127.0.0.1:8080/:

tomcat管理界面. png

如图所示,带有标记的三个按钮在点击登录后,分别进入服务状态显示画面、Tomcat web APP应用管理画面、托管管理画面。 下面介绍前两个功能的一部分。 第三,配置虚拟机提供了与直接在server.xml上配置相同的效果

2.3、配置

登录到之前设置的管理员帐户,进入Server Status界面

服务状态管理界面. png

界面上可以看到' ajp-nIO-8009 '和' http-nIO-8081 '。 因为我在最新的tomcat9上演示,所以我们看到的io类型是直接非块同步io(nio ),Tomcat6/7/8默认为块式同步io(nio ) bio

2.3.1将bio更改为nio。 /conf/server.xml的

连接端口=' 8080 '协议=' http/1.1 '连接时间out=' 20000 ' redirect port=' 8443 ' /

连接器端口=' 8080 ' protocol=' org.Apache.coyote.http 11.http 11 nio protocol '! -或protocol=' org.Apache.coyote.http 11.http 11 nio 2协议'-- -! -或protocol=' org.Apache.coyote.http 11.http 11 apr protocol '-- connection time out=' 20000 ' redirect port=' 8443 nio2(即无阻塞异步io )的性能稍好于nio。 apr ) Apacheportableruntime/Apache可移植运行时)是ApacheHTTP服务器的支持库。 很容易理解,Tomcat作为JNI调用Apache HTTP服务器的核心动态链接库来处理文件读取和网络传输操作,可以大大提高Tomcat静态文件的处理性能。

2.3.2禁用启用lookups、DNS查询

2.3.3 acceptor线程计数,接收连接的线程数。 默认值为1。 这是指需要更改的情况,因为服务器是多核CPU,而多核CPU通常配置为2

2.3.4接受计数。 指定在使用所有可用处理请求的线程数时可以进入处理队列的请求数。 不处理超过此数量的请求,默认设置为100

connector port=' 8080 ' protocol=' org.Apache.coyote.http 11.http 11 nio protocol ' enable lookups=' false ' accept coupt

2.3.5打开Tomcat缓存优化压缩功能

compressionMinSize启用压缩的输出内容大小。 这里默认为2KB

压缩类型

连接时间输出定义了建立客户连接超时的时间。 如果为-1,则建立客户连接的时间不受限制

compression=' on ' compression minsize=' 2

048"compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"connectionTimeout="20000"

 

2.3.6配置最大线程数量(默认200)

maxThreads:由该连接器创建的处理请求线程的最大数目,也就是可以处理的同时请求的最大数目。如果未配置默认值为200。如果一个执行器与此连接器关联,则忽略此属性,因为该属性将被忽略,所以该连接器将使用执行器而不是一个内部线程池来执行任务。maxThreads是一个重要的配置属性,maxThreads配置的合理直接影响了Tomcat的相关性能,所以这里我们重点讨论下。
maxThreads并不是配置的越大越好,事实上你即使配置成999999也是没有用的,因为这个最大值是受操作系统及相关硬件所制约的,并且最大值并不一定是最优值,所以我们追寻的应该是最优值而不是最大值。

 

2.3.7禁用 AJP(如果你服务器没有使用 Apache)

AJP是为了配合Apache处理静态文件服务器,进行服务器间文件传输的协议,用不上的话就注销它,后面我会讲述Tomcat配合Nginx处理静态文件(动静分离和负载均衡)
把下面这一行注释掉,默认 Tomcat 是开启的。

 

<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->

禁用之后我们可以看一下服务状态页面:

图三.png

 

发现AJP协议已经没有了,nio转换为nio2了
2.3.8整合:

 

protocol="HTTP/1.1"maxHttpHeaderSize="8192"maxThreads="1000" //最大线程数,默认200minSpareThreads="100" //Tomcat初始化时创建的socket线程数,线程的最小运行数目,这些始终保持运行,如果未指定,默认值为10maxSpareThreads="1000"//Tomcat连接器的最大空闲socket线程数minProcessors="100"//服务器创建时的最小处理线程数maxProcessors="1000"//服务器同时最大处理线程数enableLookups="false"//关闭DNS反向查询,若设为true,则支持域名解析,可把ip地址解析为主机名compression="on"//打开压缩功能compressionMinSize="2048"compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"connectionTimeout="20000"//代表连接超时时间,单位为毫秒,默认值为60000。通常情况下设置为30000URIEncoding="utf-8"//URL统一编码acceptCount="1000"//监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads),如果未指定,默认值为100redirectPort="8443"//在需要基于安全通道的场合,把客户请求转发到基于SSL的redirectPort端口disableUploadTimeout="true"/>//这个标志允许servlet[Container](http://lib.csdn.net/base/4)在一个servlet执行的时候,使用一个不同的,更长的连接超时。最终的结果是给servlet更长的时间以便完成其执行,或者在数据上载的时候更长的超时时间。如果没有指定,设为false

 

2.3.9 Web应用管理

用管理员账号进入web应用管理界面:

web应用管理界面.png

如图所示,我们可以看到Applications模块,在这个里面可以对tomcat中部署的应用的启动状态做修改,把不需要的应用可以暂时关闭,同时也可以对session缓存时间进行配置
3、JVM 优化
修改/坚强的树叶/catalina.bat 文件,如:

jvm优化参数.png

如果服务器只运行一个 Tomcat
机子内存如果是 8G,一般 PermSize 配置是主要保证系统能稳定起来就行(如果是Linux系统,等号后的值要用引号引起来)

 

set JAVA_OPTS=-Dfile.encoding=UTF-8 -server -Xms6144m -Xmx6144m -XX:NewSize=1024m -XX:MaxNewSize=2048m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC

 

机子内存如果是 16G,一般 PermSize 配置是主要保证系统能稳定起来就行:

 

set JAVA_OPTS=-Dfile.encoding=UTF-8 -server -Xms13312m -Xmx13312m -XX:NewSize=3072m -XX:MaxNewSize=4096m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC

 

机子内存如果是 32G,一般 PermSize 配置是主要保证系统能稳定起来就行:

 

set JAVA_OPTS=-Dfile.encoding=UTF-8 -server -Xms29696m -Xmx29696m -XX:NewSize=6144m -XX:MaxNewSize=9216m -XX:PermSize=1024m -XX:MaxPermSize=1024m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC

 

如果是开发机

 

set JAVA_OPTS=-Xms550m -Xmx1250m -XX:PermSize=550m -XX:MaxPermSize=1250m

参数说明:

 

-Dfile.encoding:默认文件编码-server:表示这是应用于服务器的配置,JVM 内部会有特殊处理的-Xmx1024m:设置JVM最大可用内存为1024MB-Xms1024m:设置JVM最小内存为1024m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-XX:NewSize:设置年轻代大小-XX:MaxNewSize:设置最大的年轻代大小-XX:PermSize:设置永久代大小-XX:MaxPermSize:设置最大永久代大小-XX:NewRatio=4:设置年轻代(包括 wxdsy 和两个 Survivor 区)与终身代的比值(除去永久代)。设置为 4,则年轻代与终身代所占比值为 1:4,年轻代占整个堆栈的 1/5-XX:MaxTenuringThreshold=10:设置垃圾最大年龄,默认为:15。如果设置为 0 的话,则年轻代对象不经过 Survivor 区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在 Survivor 区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。-XX:+DisableExplicitGC:这个将会忽略手动调用 GC 的代码使得 System.gc() 的调用就会变成一个空调用,完全不会触发任何 GC

4、高级调优
以上内容足以应付绝大多数情景,熟悉以上内容,你也就步入了服务器优化的大门了,且水平会远强于其他菜鸟,但要进一步提升,则需继续学习以下内容
4.1、Tomcat配合Nginx做负载均衡
4.2、Tomcat配合Nginx做动静分离
4.3、Tomcat配合Nginx和Redis做tomcat集群和session共享
4.4、Jmeter做压力测试
如需交流学习,请留言看我私文:

 

 
链接:https://www.jianshu.com/p/4024bddc0550
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。