Tomcat9调优

背景

tomcat Connector三种运行模式对比:

    ● Bio
    一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。
    ● Nio
    利用Java的异步IO处理,可以通过少量的线程处理大量的请求。
    Linux系统下Tomcat8默认使用nio模式。
    ● Apr
    Apache Portable Runtime,从操作系统级别解决异步IO问题,大幅度提高服务器的并发处理性能。
    Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作。
    Win7及更高版本系统中,Tomcat 7/8/9默认使用apr模式,Linux系统中需要手动配置。
软件包准备
    apr-1.7.0.tar.gz

    apr-util-1.6.1.tar.gz

    apr-iconv-1.2.2.tar.gz

    openssl-1.1.1g.tar.gz

    apache-tomcat-9.0.34.tar.gz

    jdk-8u202-linux-x64.tar.gz

    ● 操作系统:CentOS7.6

    ● 软件包保存路径:/tmp

    ● 服务器内存:8G
yum install -y gcc gcc-c++ automake autoconf libtool* expat-devel per perl-devel

cd /tmp/

wget http://10.10.0.100/download/apr-1.7.0.tar.gz

wget http://10.10.0.100/download/apr-util-1.6.1.tar.gz

wget http://10.10.0.100/download/apr-iconv-1.2.2.tar.gz

wget http://10.10.0.100/download/openssl-1.1.1g.tar.gz

wget http://10.10.0.100/download/apache-tomcat-9.0.34.tar.gz    (新版tomcat可见  http://mirrors.mjm.com/package/tomcat 目录下的安装包)

wget http://10.10.0.100/download/jdk-8u202-linux-x64.tar.gz
安装JDK
mkdir /usr/local/java
tar -zxvf /tmp/jdk-8u202-linux-x64.tar.gz -C /usr/local/java/
vim /etc/profile              #加入以下5行
#mjm Custom settings
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export JAVA_HOME=/usr/local/java/jdk1.8.0_202
export PATH=$PATH:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/jre/lib

source /etc/profile              #使jdk配置生效
安装apr及openssl
tar -zxvf /tmp/apr-1.7.0.tar.gz
cd /tmp/apr-1.7.0

sed -i '31279s/$RM/$RM\ -f/g' configure             #防止configure操作出现rm: cannot remove `libtoolT': No such file or directory报错
./configure --prefix=/usr/local/apr
make && make install

tar -zxvf /tmp/apr-iconv-1.2.2.tar.gz
cd /tmp/apr-iconv-1.2.2
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
make && make install

tar -zxvf /tmp/apr-util-1.6.1.tar.gz
cd /tmp/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

tar -zxvf /tmp/openssl-1.1.1g.tar.gz
cd /tmp/openssl-1.1.1g
./config --prefix=/usr/local/openssl
make && make install
安装tomcat及tomcat-native
tar -zxvf /tmp/apache-tomcat-9.0.34.tar.gz -C /opt/
mv /opt/apache-tomcat-9.0.34 /opt/tomcat-9.0.34
cd /opt/tomcat-9.0.34/bin
tar -zxvf tomcat-native.tar.gz
cd /opt/tomcat-9.0.34/bin/tomcat-native-1.2.23-src/native
./configure --with-java-home=/usr/local/java/jdk1.8.0_202 --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl
make && make install
配置tomcat
vim /opt/tomcat-9.0.34/conf/server.xml


#找到SSLEngine="on"所在行,将其改为

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />


#找到port="8080" protocol="HTTP/1.1"对应的Connector部分,将其改为

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
redirectPort="8443" URIEncoding='UTF-8' />


#找到port="8009" protocol="AJP/1.3"对应的Connector部分,将其改为

<Connector port="8009" protocol="org.apache.coyote.ajp.AjpAprProtocol" redirectPort="8443" />
vim /opt/tomcat-9.0.34/bin/catalina.sh
#找到cygwin=false这一行,在其上方添加如下内容:

JAVA_OPTS="-server -Xms6144mm -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=512m -Djava.library.path=/usr/local/apr/lib"
#配置中Xms,Xmx,XX各项设置根据服务器内存实际大小来调整JVM设置,例如Xms和Xmx按照物理内存的2/3或者3/4来设置。
系统优化
echo "*         soft            nofile          655350" >> /etc/security/limits.conf

echo "*         hard            nofile          655350" >> /etc/security/limits.conf


sed -i 's/4096/655350/g' /etc/security/limits.d/20-nproc.conf

sed -i 's/#DefaultLimitCORE=/DefaultLimitCORE=infinity/g' /etc/systemd/system.conf

sed -i 's/#DefaultLimitNOFILE=/DefaultLimitNOFILE=100000/g' /etc/systemd/system.conf

sed -i 's/#DefaultLimitNPROC=/DefaultLimitNPROC=100000/g' /etc/systemd/system.conf

[备注]:此处配置需重启电脑生效。

vim /etc/sysctl.d/99-sysctl.conf

net.ipv4.ip_local_port_range = 10240 65535
执行sysctl -p生效。

vim /etc/profile
#结尾加入两行

export LD_LIBRARY_PATH=/lib:/lib64:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/apr/lib
执行source /etc/profile生效。
检查tomcat运行模式

● 方法一

vim /opt/tomcat-9.0.34/conf/tomcat-users.xml

#在倒数第二行位置,加入如下内容:

<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role username="tomcat" password="tomcat" roles"admin-gui,admin,manager-gui,manager"/>
#其中username及password可自定义。


vim /opt/tomcat-9.0.34/conf/Catalina/localhost/manager.xml
#加入如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
#启动tomcat
bash /opt/tomcat-9.0.34/bin/startup.sh
#浏览器输入地址 http://IP地址:8080/manager/status ,在弹窗中输入刚才设置用户名和密码,看到"http-apr-8080"字样,说明运行模式为apr。

● 方法二

#启动tomcat
bash /opt/tomcat-9.0.34/bin/startup.sh
tail -f /opt/tomcat-9.0.34/logs/catalina.out
#在启动日志中'Server startup in xx ms'前找到Starting ProtocolHandler ["http-apr-8080"]及Starting ProtocolHandler ["ajp-apr-8009"]字样,说明运行模式为apr。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值