Tomcat优化

  1. 优化Tomcat的JVM环境
vim /usr/local/apache-tomcat-9.0.16/bin/catalina.sh

#在该注释后加入如下代码
# OS specific support.  $var _must_ be set to either true or false.
export JAVA_OPTS="-server -Xms512M -Xmx512M -Xss512k -XX:PermSize=128M 
 -XX:MaxPermSize=256M -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=8 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC  -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m  -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true"

#-server 开启tomcat的服务器模式
#-Xms 最小堆内存(JVM发现内存使用率达到最小内存的阀值时,会增加堆内存,直到最大内存为止,如果超出,则OutOfMemory Heap的错误 )
#-Xmx 最大堆内存(JVM发现内存使用率低于最大内存的阀值时,会减少内存,直到最低内存位置。 为了防止JVM的这种申请或释放堆内存的机制,强烈建议将最小堆内存和最大堆内存设置成一样)
#-AggressiveOpts 自动将新版本的优化配置生效
#-XX:PermSize 永久代内存
#-XX:MaxPermSize=256M 最大永久代内存
  1. 优化Tomcat线程池
vim /usr/local/apache-tomcat-9.0.16/conf/server.xml

#修改内容如下
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>


  <Service name="Catalina">
    <Connector port="9000" protocol="HTTP/1.1"
			   URIEncoding="UTF-8"			  
               maxHttpHeaderSize="8192"
			   maxThreads="1200"
			   enableLookups="false"
			   acceptCount="200"
               connectionTimeout="20000"
			   disableUploadTimeout="true"
			   compression="on"
			   compressionMinSize="2048"
			   compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
               redirectPort="8443" />
   
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">   
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>
  1. 开启Tomcat的apr模式
#安装apr和gcc
yum -y install apr apr-devel
yum -y install gcc

#安装tomcat的native安装包
cd /usr/local/apache-tomcat-9.0.21/bin/
tar xzfv tomcat-native.tar.gz
cd tomcat-native-1.2.21-src/native/
./configure --with-apr=/usr/bin/apr-1-config
make
make install

1.png

#整合Tomcat的apr到环境上变量中
vim /etc/profile

#在文件中加入下面这句话
export CATALINA_OPTS=-Djava.library.path=/usr/local/apr/lib

#使配置生效
source /etc/profile

#修改tomcat的server.xml配置文件
vim tomcat/conf/server.xml
#将配置中的
Connector port="8080" protocol="HTTP/1.1"
改成
Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"

将配置中的
Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
改成
Connector port="8009" protocol="org.apache.coyote.ajp.AjpAprProtocol" redirectPort="8443"

重启tomcat, 启动日志出现以下内容表示APR模式成功开启
INFO: Initializing ProtocolHandler [“http-apr-8080”]
INFO: Initializing ProtocolHandler [“apj-apr-8009”]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值