性能测试二十:环境部署之Tomcat多实例部署+日志监控

时间:2024-07-18 20:03:02

一个tomcat性能有限,所以需要部署等多个tomcat

单实例部署
与windows下类似,项目包放到webapp目录下,启动bin目录下的startup.sh即可
启动命令:./startup.sh
启动并实时监控日志:./startup.sh & tail -f ../logs/catalina.out

多实例部署
1,先创建一个存放项目包的目录,如:mkdir -p /export/apps
2,将原来tomcat目录下webapps下的项目包移到apps目录下
3,修改tomcat的配置文件,打开conf目录下的server.xml,搜索appBase,将appBase=后的路径修改为存放项目包的路径
3,将tomcat复制2份,tomcat-server-1,tomcat-server-2
4,修改tomcat-server-2里的server.xml,修改以下三个端口,与tomcat-server-1区分开
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"
<Connector port="8009" protocol="AJP/1.3"
5,启动2个tomcat,在tomcat的bin目录下,执行命令:
./startup.sh & tail -f ../log/catalina.out
启动tomcat的同时,查看启动过程中是否有报错,第一次启动时可能没有catalina.out,可以先启动后再看日志

多个tomcat部署

这是之前给项目部署的单个tomcat

性能测试二十:环境部署之Tomcat多实例部署+日志监控

现在,要为之前部署的想不部署两个tomcat:

为了方便辨认,把tomcat重新命名:mv apache-tomcat-7.0.72/ tomcat-1

性能测试二十:环境部署之Tomcat多实例部署+日志监控

把tomcat复制一份:cp -r tomcat-1/ tomcat-2

性能测试二十:环境部署之Tomcat多实例部署+日志监控

此时tomcat-2下也有项目,这样的话会比较麻烦,比如项目更新的时候,部署了多个tomcat,那么每一个tomcat下的项目都要去更新

性能测试二十:环境部署之Tomcat多实例部署+日志监控

把项目抽离出来单独创建一个目录,每个tomcat都指向项目所在的目录

在home目录下,创建一个叫apps的目录,专门用来存放项目

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

对对应的项目创建文件夹

性能测试二十:环境部署之Tomcat多实例部署+日志监控

回到tomcat目录下,把项目移到刚刚创建的目录下

性能测试二十:环境部署之Tomcat多实例部署+日志监控

删掉tomcat-2下面的项目

性能测试二十:环境部署之Tomcat多实例部署+日志监控

因为tomcat默认读取项目是在webapps下面,所以要去修改读取位置

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

修改为要运行的项目的目录

性能测试二十:环境部署之Tomcat多实例部署+日志监控

重启tomcat,重启之前,先执行命令   ps -ef|gref tomcat  看看tomcat是否已经启动,如果已经启动,则kil掉再启动,否则会报错

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

使用 tail -f 实时监控启动日志,看有没有报错,tomcat的日志存放在logs/下

执行命令:./startup.sh & tail -f ../logs/catalina.out

性能测试二十:环境部署之Tomcat多实例部署+日志监控

启动完成

性能测试二十:环境部署之Tomcat多实例部署+日志监控

进程存在,访问项目接口也成功,说明启动成功

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

tomcat-2:由于tomcat-1已经占用了8080端口,所以tomcat-2不能占用8080

修改tomcat-server-2里的server.xml,修改以下三个端口,与tomcat-server-1区分开
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"
<Connector port="8009" protocol="AJP/1.3"

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

启动tomcat-2

性能测试二十:环境部署之Tomcat多实例部署+日志监控

与之前的验证方法一样,查看端口号,访问项目地址

性能测试二十:环境部署之Tomcat多实例部署+日志监控

Tomcat配置访问日志

用于判断网络配置和时间,缩小问题范围

tomcat的logs目录下localhost_access_log.xxxx-xx-xx.txt里记录了访问tomcat的日志,可以通过配置,使访问日志中显示请求耗时
修改tomcat的conf目录下server.xml文件

<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 %T" />
%T:请求耗时,单位秒

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

访问一次,即可看到监控的访问日志

性能测试二十:环境部署之Tomcat多实例部署+日志监控

通过配置,使访问日志中显示请求耗时

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

性能测试二十:环境部署之Tomcat多实例部署+日志监控

修改后

性能测试二十:环境部署之Tomcat多实例部署+日志监控

重启tomcat,启动监控,访问项目地址

性能测试二十:环境部署之Tomcat多实例部署+日志监控

此时间为从请求到tomcat,到离开tomcat回到客户端的时间

性能测试二十:环境部署之Tomcat多实例部署+日志监控

若jmeter或LR统计出来访问时间为600毫秒,tomcat日志打印出来的访问时间为580毫秒,则说明网络传输为20毫秒,方便判断网络配置和时间,缩小问题范围