Centos安装Tomcat以及高并发优化

Tomcat是一个轻量级的Web服务器。通常情况下,我们使用它运行Java代码。它也可以被称为Jsp、serlvet的容器。目前主流的有三个版本,Tomcat-7.0、Tomcat-8.5、Tomcat-9.0 。这里我们对Tomcat-9.0版本进行安装与调优。

一、 安装包及依赖环境下载

1、Tomcat-9.0安装包下载

官网地址:点击下载
Centos安装Tomcat以及高并发优化_第1张图片
Shell命令

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.30/bin/apache-tomcat-9.0.30.tar.gz

2、JDK1.8安装

Tomcat作为一个web容器,运行需要Jdk环境。同时,我们使用的Tomcat-9.0版本需要Jdk1.8版本的,在上一篇文章 《Centos安装数据库读写分离中间件Mycat》中有介绍JDK1.8的安装方式,需要安装的可以查看。这里不多做叙述。

3、cronolog日志切割工具安装

cronolog是一个日志切割工具,可以将Tomcat的catalina.out日志按天进行切割,并输出到指定的位置。安装配置比较方便,下载完成后,解压编译一下即可使用。 该地址可能会访问不通。原因不详,你应该有办法。得到安装包后进行解压,然后进入解压后的目录,按以下顺序执行命令即可。

 wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
 tar xf cronolog-1.6.2.tar.gz
 cd cronolog-1.6.2
 ./configure
 make && make install

编译完成后,会在默认路径 /usr/local/sbin/ 下生成两个文件,其中cronolog为可执行文件,给予执行权限。

chmod +x /usr/local/sbin/cronolog
二、安装Tomcat

Tomcat安装方式比较简单,解压后更改一下配置参数即可使用。如果想要运行多个实例,只需要更改不同的端口,日志输出路径即可。需要注意的是,有三个端口需要更改(8005、8080、8009)。

1、解压安装

tar xf apache-tomcat-9.0.30.tar.gz
mv apache-tomcat-9.0.30 tomcat

2、建立Tomcat用户

Tomcat服务启动使用root用户不安全,我们给它建立个tomcat启动用户。同时,需要注意的是将启动涉及到的目录都要赋予tomcat用户权限。

useradd tomcat  
chown -R tomcat.tomcat /data/tomcat/
chown -R tomcat.tomcat /data/logs/  ##日志输出目录 

2、修改日志输出路径

cd tomcat
vim bin/catalina.sh
修改前
logs目录换成你需要输出的目录,我将它输出到 /data/logs 里。
修改后

3、启动服务

以tomcat用户启动服务

su - tomcat -c "/data/tomcat/bin/start.sh"

启动成功
Centos安装Tomcat以及高并发优化_第2张图片

4、访问测试

在/data/tomcat/webapps/ROOT/目录下写个index.html测试页面,请求一下。

vim /data/tomcat/webapps/ROOT/index.html

#
<h1> Test Page </h1>
:wq 

curl http://127.0.0.1:8080
在这里插入图片描述

三、服务优化

不长篇大论,只介绍几种实用的优化方式,线上环境实际使用的。

1、启动优化

Tomcat启动慢是通病,网上有多种提高启动速度的方式。我一直使用的是增加熵池随机数的方式。效果比较明显,安装rng-tools服务来增加熵池随机数。

yum -y install rng-tools
systemctl start rngd
systemctl status rngd

服务已运行
Centos安装Tomcat以及高并发优化_第3张图片

2、启动内存分配

还是找到tomcat/bin/catalina.sh 启动程序,在程序里添加以下内容即可。具体参数,按自己服务器配置设置。如果单跑tomcat服务,可适当提高。

vim /data/tomcat/bin/catalina.sh
#
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m
:wq

在这里插入图片描述
参数解析:
-Xms:占用系统的最小内存
-Xmx:占用系统的最大内存
-XX:PermSize:最小栈内存大小
-XX:MaxPermSize:最大栈内存大小。

3、高并发配置优化

通常情况下,tomcat默认开启的等待线程为10个,最大线程为200个。显然无法满足并发情况。在这里,对其配置文件server.xml进行优化。有两种参数调整方式。
配置文件位置:/data/tomcat/conf/server.xml
(1)Executor 线程池配置(默认是注释的),然后Connector段引用定义的线程池Name。
在这里插入图片描述
(2)Connector段直接配置。
在这里插入图片描述
我们直接使用第二种方法,在connnector段进行配置。
增加参数:
protocol=“org.apache.coyote.http11.Http11NioProtocol” ##工作模式为Nio模式,高效的处理并发。
maxThreads=“500” ##最大线程开启。
acceptCount=“1000” ##指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

更改后的配置:
在这里插入图片描述
在这里没有增加太多的参数,只增加了有效的两个。

4、ab测试比较

调整参数前:
在这里插入图片描述
Centos安装Tomcat以及高并发优化_第4张图片
对服务器进行并发压测。不断增加并发,在增长到242个线程时,停止增加。

调整参数后:
Centos安装Tomcat以及高并发优化_第5张图片
在这里插入图片描述
线程数已开启到542个,同时执行速率也明显提高。

如果服务器CPU性能较好,可适当增加最大线程数,但由于linux内核原因,对于线程数支持有限。所以开启1000线程以到极限。CPU上下文切换速率会受影响。500左右为较好的工作状态,再高就要考虑集群部署了。下篇文章,我们来讲解Nginx反代tomcat集群架构部署。

流水文档 仅供参考

你可能感兴趣的:(那些年运过的维)