tomcat优化篇——jmeter压力测试工具使用

安全优化

  • 管理端口保护

在server.xml文件下把管理端口和口令修改一下:
在这里插入图片描述

  • ajp连接端口保护

Apache JServ协议1.3版(简称ajp13)是一个二进制的TCP传输协议,相比当前HTTP这种纯文本协议来说它的效率和性能更加高效,然而,目前的浏览器并不能直接支持ajp13,就连目前非常火爆的nginx也没有相应的模块能支持ajp。按照官方的说法就是如果你使用的是apache,而Apache的proxy_ajp模块进行反向代理能大大提高动静分离的性能(说白了就是仅对Apache有用)。如果你用得不是apache那就趁早这样设置吧:
在这里插入图片描述

  • 禁用管理页面

在这里插入图片描述

管理页面能看到我们服务的所有配置信息,一般在生产上是不建议开启的。
在这里插入图片描述
另外一个就是在我们部署完成tomcat之后建议做以下处理:
删除conf目录下的tomcat-users.xml
删除webapps目录下默认的所有目录文件
将tomcat网站目录配置在安装目录以外的目录

  • 使用监牢模式以管理维护tomcat

监牢模式是指让服务通过非root用户启动、关闭、管理tomcat。
在这里插入图片描述
在切换用户之前先关闭tomcat服务再以普通用户的身份启动tomcat能看到服务启动成功。

  • 文件列表访问控制

tomcat的访问控制相当于nginx的autoindex功能,编辑conf目录下的web.xml文件,设置为true则开启:
在这里插入图片描述

  • 隐藏版本信息

tomcat和其它web服务器也一样需要隐藏版本信息防止通过漏洞对网站进行攻击,在web.xml添加:

<error-page>
4727     <error-code>403</error-code>
4728     <location>/forbidden.jsp</location>
4729     </error-page>
4730 
4731     <error-page>
4732     <error-code>404</error-code>
4733     <location>/notfound.jsp</location>
4734     </error-page>
4735 
4736     <error-page>
4737     <error-code>500</error-code>
4738     <location>/busy.jsp</location>
4739     </error-page>

在这里插入图片描述

在server.xml添加:
在这里插入图片描述
可以看到:
在这里插入图片描述

  • 访问控制

tomcat的访问控制相当于nginx的deny跟allow,用来限制某个IP的访问请求只需在host相应区内配置:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.8.*" />
  • 启停脚本权限设置
[root@localhost:/app/tomcat/bin]# chmod 700 ./*.sh
  • 修改访问日志格式

在server.xml修改为:

%{Referer}i %{User-Agen    t}i %D" resolveHosts="false"

在这里插入图片描述
在这里插入图片描述

性能优化

  • 参数数值优化

先不设置数值,通过压力测试软件做压力测试看看tomcat性能再增加优化参数。

常见的压力测试工具:

压力测试going工具
ab/webbench http压力测试
jmeter 压力测试java(tomcat)
dd/fio 磁盘
mysqlslap 测试数据库
loadrunner 专业测试工具

jmeter压力测试工具准备

下载好jmeter工具之后在bin目录下有个jmeter.bat文件打开之后
在这里插入图片描述

配置好之后可以看到一些信息:
在这里插入图片描述
聚合报告中各项项指标含义如下:
样本:jmeter发送了多少个请求
平均值:平均响应时间
中位数:50%用户的响应时间
90%百分位:90%用户的响应时间
最小值:最小响应时间
最大值:最大响应时间
异常:本次测试产生错误请求的数量
吞吐量:每秒完成的请求数,我们要优化调整的参数
接收:每秒从服务器接收到的数据量
在这里插入图片描述
调整线程组的线程数等参数用于压力测试:

在这里插入图片描述
在tomcat的server.xml文件中添加优化参数:
在这里插入图片描述

maxThreads="500":最大的线程数,根据CPU的运算能力设置大小,如果CPU在计算的情况下应适当设置小一些;如果是IO频繁的情况下,则适当调大
acceptCount="500":当达到最大线程数量的时候的队列长度,一般设置跟maxThreads数一样
minSpareThreads="10":空闲时最小的线程数量
enableLookups="false":禁用DNS解析
compression="on":打开压缩功能
compressionMinSize="2048":最小压缩文件大小,单位字节
compressableMimeType="text/html,text/plain,text/css,application/javascript,application/json,application/x-font-ttf,application/x-font-otf":压缩哪些类型的文件
disableUpTimeout="true":禁用上传文件超时
acceptorThreadCount="2":接收连接线程的个数

  • jvm优化

调整jvm的初始内存大小:
修改catalina.sh文件

在这里插入图片描述

JAVA_OPTS='-Xms1024m -Xmx1024m    -Xloggc:/var/log/tomcat_gc.log'

-Xms:jvm初始内存大小
-Xmx:jvm最大内存,一般设置为-Xms的2倍
gc:垃圾回收机制,定期清理jvm内存
-Xloggc:执行gc时候记录日志
如果是jar包在解压时指定这些参数:java -jar xxx.jar -Xms1024m -Xmx1024m -Xloggc:/var/log/tomcat_gc.log

猜你喜欢

转载自blog.csdn.net/nmb_jiang/article/details/106158447
今日推荐