tomcat优化

日常会做一些tomcat运维工作,其中就包括了tomcat优化,由本地文件保存到线上,以后就不用找文档了。

内存优化:

linux修改catalina.sh,在#!/bin/sh后面加入:

JAVA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError"

实际按照具体硬件配置优化。

线程优化:

修改conf/server.xml文件:

Connector port="8080" protocol="HTTP/1.1" maxThreads="600" minSpareThreads="100" maxSpareThreads="500" acceptCount="700" enableLookups="false"
connectionTimeout="20000" redirectPort="8443"

maxThreads="600"       最大线程数
minSpareThreads="100" 初始化时创建的线程数
maxSpareThreads="500" 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount="700" 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理 

enableLookups="false" 禁用dns查询

设置session过期时间:

修改conf\web.xml文件:

session-timeout 设置会话超时时间

Tomcat可以使用Apache Portable Runtime来提供卓越的性能及可扩展性,更好地与本地服务器技术的集成 

安装APR前的官方要求

APR 1.2+ development headers (libapr1-dev package)
OpenSSL 1.0.2+ development headers (libssl-dev package)
JNI headers from Java compatible JDK 1.4+
GNU development environment (gcc, make)

安装相关依赖包

yum -y install gcc gcc-c++ libtool* autoconf automake expat-devel perl perl-devel

APR库相关包可以在这里下载 http://archive.apache.org/dist/apr/?C=S;O=A 

下载安装包

[root@APR ~]# mkdir /software
[root@APR ~]# cd /software/
[root@APR software]# wget http://mirror.rise.ph/apache//apr/apr-1.6.5.tar.gz
[root@APR software]# wget http://mirror.rise.ph/apache//apr/apr-iconv-1.2.2.tar.gz
[root@APR software]# wget http://mirror.rise.ph/apache//apr/apr-util-1.6.1.tar.gz
[root@APR software]# wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz
友情提示:apr、apr-iconv、apr-util都是截止到2019年1月22日的最新版本,openssl是最新的稳定版,openssl的官网原文翻译如下:
最新的稳定版本是1.1.1系列。这也是我们的长期支持(LTS)版本,支持到2023年9月11日。我们之前的LTS版本(1.0.2系列)将继续得到支持,直到2019年12月31日(安全修复仅在支持的最后一年)。1.1.0系列目前仅接收安全修复程序,并将于2019年9月11日停止支持。鼓励1.0.2和1.1.0的所有用户尽快升级到1.1.1。0.9.8,1.0.0和1.0.1版本现在不受支持,不应使用。
因此,建议使用1.1.1版本,不要再使用其他版本!!!

安装APR

[root@APR software]# tar zxf apr-1.6.5.tar.gz
[root@APR software]# cd apr-1.6.5/
[root@APR apr-1.6.5]# vim configure
默认值:
在第30392行 RM='$RM'
修改为:
在第30392行 RM='$RM -f'
[root@APR apr-1.6.5]# ./configure --prefix=/usr/local/apr && make && make install

安装apr-iconv 

[root@APR apr-1.6.5]# cd ..
[root@APR software]# tar zxf apr-iconv-1.2.2.tar.gz
[root@APR software]# cd apr-iconv-1.2.2/
[root@APR apr-iconv-1.2.2]# ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr && make && make install 

安装apr-util

[root@APR apr-iconv-1.2.2]# cd ..
[root@APR software]# tar zxf apr-util-1.6.1.tar.gz
[root@APR software]# cd apr-util-1.6.1/
[root@APR apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv && make && make install

 安装OpenSSL

[root@APR apr-util-1.6.1]# cd ..
[root@APR software]# tar zxf openssl-1.1.1.tar.gz
[root@APR software]# cd openssl-1.1.1/
[root@APR openssl-1.1.1]# ./config --prefix=/usr/local/openssl && make -j $(grep processor /proc/cpuinfo | wc -l) && make install

安装tomcat-native:

[root@APR openssl-1.1.1]# cd /usr/local/tomcat/bin/
[root@APR bin]# tar zxf tomcat-native.tar.gz
[root@APR bin]# cd tomcat-native-1.2.18-src/native/
[root@APR native]# ./configure --with-ssl=/usr/local/openssl --with-apr=/usr/local/apr --with-java-home=/usr/local/java && make && make install
友情提示1:博主这里的jdk安装路径在/usr/local/java,是自定义环境,读者切莫直接粘贴,要改成你实际的jdk路径。
友情提示2:注意:如果以上 configure 失败,可以执行 make distclean 清除。

添加环境变量

 $ vi /etc/profile   #在最后增加环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib

$ source /etc/profile

$ cd /opt/tomcat/bin

$ vi setenv.sh   #新增一个环境变量设置脚本

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH

到此为止APR就安装完成了,下面我们使用APR模式

修改tomcat配置文件,使用APR运行模式,并测试是否安装成功

[root@APR native]# vim /usr/local/tomcat/conf/server.xml //请按你实际tomcat安装路径为准

默认值:

               connectionTimeout="20000"
               redirectPort="8443" />

修改为:

               connectionTimeout="20000"
               redirectPort="8443" />

启动tomcat查看日志:

26-Jun-2021 23:53:55.480 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat8/webapps/ROOT]
26-Jun-2021 23:53:56.367 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat8/webapps/ROOT]的部署已在[860]毫秒内完成
26-Jun-2021 23:53:56.368 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat8/webapps/docs]
26-Jun-2021 23:53:56.441 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat8/webapps/docs]的部署已在[73]毫秒内完成
26-Jun-2021 23:53:56.441 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat8/webapps/examples]
26-Jun-2021 23:53:56.936 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat8/webapps/examples]的部署已在[494]毫秒内完成
26-Jun-2021 23:53:56.936 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat8/webapps/host-manager]
26-Jun-2021 23:53:57.002 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat8/webapps/host-manager]的部署已在[66]毫秒内完成
26-Jun-2021 23:53:57.003 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat8/webapps/manager]
26-Jun-2021 23:53:57.046 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat8/webapps/manager]的部署已在[43]毫秒内完成
26-Jun-2021 23:53:57.066 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-apr-8080"]
26-Jun-2021 23:53:57.103 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 1792 ms 

友情提示:查看日志看到“http-apr-8080”和“ajp-apr-8009”字样就是APR模式运行成功。

参考资源:

https://blog.csdn.net/u010195563/article/details/80966025 

https://blog.51cto.com/zpf666/2345345

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值