tomcat服务器的优化

直接配置即可

首先你要在tomcat服务器上添加一个管理员账户

然后你就可以查看这个页面


这历史服务器状态,通过查看服务器状态,调整服务器参数:


接下来看看我是怎么配置的把。

打开tomcat的配置文件:server.xml

我直接粘代码了:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
               connectionTimeout="20000"
               redirectPort="8443" 
               maxThreads="800"
               minSpareThreads="100"
               maxQueueSize="100"
               prestartminSpareThreads="true"/>

这里进行了2手配置

1.启用Nio

2.修改了默认的连接池参数

下面我还禁用了AJP服务,也能增加服务器的性能

其实优化服务器,我们一般都是先纵向优化,然后在横向优化,先把一个弄好了,其它的复制就可以了

禁用AJP服务很简单,直接把下面这段代码注释掉就可以了

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

这样tomcat的优化就已经完成了,当然,如果要最求更高的性能,我们还需要对服务器运行的虚拟机参数进行配置,在配置之前你需要知道虚拟机中的内存模型

包括: Yong(年轻代)被划分为3个部分 Eden 和两个大小严格相同的Survivor区 Survivor区中某一时刻只有一个被使用,另一个留作垃圾收集时复制对象使用 在年轻代变满时,GC就会将存活的对象移到空闲的Survivor区中,根据jvm的策略,经过一定次数的垃圾收集后,依然存活在该区域的对象就会转移到终身代中。

Tenured(终身代)保存生命周期长的对象 老的对象 比如:spring容器中的对象 。

Perm(永久代)主要保存class,method,field对象

我相信,有些经验的程序员一般都遇到过这个错误:java.lang.OutOfMenoryError : PermGen space 错误。

其实造成这个错误的原因就是,永久带的内存不足了,在启动服务器的时候加载到内存的jar包过多,导致内存溢出。下面会给出解决办法,以及怎么配置

jvm参数,以便调优jvm。

参数:

-Dfile.encoding=UTF-8编码方式

-server 服务配置

-Xms 最小占用内存

-Xmx 最大占用内存

-XX:NewSize年轻代占用内存

-XX:MaxNewSize年轻带最大占用内存

-XX:PermSize永久带占用内存

-XX:MaxPermSize永久代最大占用内存

-XX:NewRatio年轻带和终身代的比值

-XX:SurvivorRation两个Survivor在年轻代的比值

-XX:MaxTenuringThreshold垃圾的最大年龄 默认为15 如果是0 则不经过Survivor区,直接进入终身代

-XX:+DisableExplicitGC忽略手动调用GC,垃圾回收全权交给jvm处理。

如何使配置生效能?

在Catalina.bat/.sh文件的第一行

注意在linux中要加个大大的双引号,将所有的参数引起来才可以,而且在linux中不需要set

加入:set JAVA_OPTS=     后面接上参数就可以生效了,下面我做个样例:

注意比对我上图中jvm的参数


我的配置:因为我是macOS所以采用和linux中相同的配置

JAVA_OPTS=" -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx3076m  -XX:NewSize=512m -XX:MaxNewSize=1024m  -XX:PermSize=256m -XX:MaxPermSize=256M -XX:NewRatio=2 -XX:MaxTenuringThreshold=10 -XX:+DisableExplicitGC"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值