前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tomcat压力测试

Tomcat压力测试

作者头像
星哥玩云
发布2022-09-15 16:24:59
2.9K0
发布2022-09-15 16:24:59
举报
文章被收录于专栏:开源部署

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能

JMeter的作用

能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。

完全的可移植性和100% 纯java。

完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。

精心的GUI设计允许快速操作和更精确的计时。

缓存和离线分析/回放测试结果。

代码语言:javascript
复制
下载地址:http://jmeter.apache.org/download_jmeter.cgi

JMeter安装使用

将下载好的压缩包在windows中解压(需要先安装JDK),解压后进入到bin目录双击jmeter.bat,等待启动

image202003132046066284103573.png
image202003132046066284103573.png

设置中文

创建测试

image20200313205020894.png
image20200313205020894.png

添加线程组,使用线程模拟用户的并发

image20200313205150993.png
image20200313205150993.png

1000个线程循环10次,tomcat会收到10000个请求

添加并设置http请求

添加监控

启动测试

image20200313205920252.png
image20200313205920252.png

查看结果

image20200313210311135.png
image20200313210311135.png
代码语言:javascript
复制
标签:说明是请求类型,如Http,FTP等请求。

样本总数:也就是图形报表中的样本数目,总共发送到服务器的样本数目。

平均值:也就是图形报表中的平均值,是总运行时间除以发送到服务器的请求数。

居中的数值:也就是图形报表中的中间值,是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。

90%&95%&99%:有多少请求的响应时间比给出的数值还要小。

最小:是代表时间的数字,是服务器响应的最短时间。

最大: 是代表时间的数字,是服务器响应的最长时间。

异常%:请求的错误百分比。

吞吐量:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。

发送/接收KB/sec:是每秒钟发送/接收的字节数。(时间的单位为ms)

通过上面测试可以看出,tomcat在不做任何调整时,吞吐量为587次/秒。这个吞吐量跟接口的业务逻辑关系很大,如果业务逻辑复杂,需要比较长时间计算的,可能吞吐量只有几十次/秒,我这里测试的时候没有添加任务业务逻辑,才会出现吞吐量为587次/秒的情况。这里的吞吐量最好是经过多次测试取平均值,因为单次测试具有一定的随机性

调整tomcat线程池

代码语言:javascript
复制
[root@zutuanxue bin]# vim /opt/tomcat1/conf/server.xml    
<Connector port="8080" protocol="HTTP/1.1" maxThreads="1000" minSpareThreads="200" prestartminSpareThreads="true" connectionTimeout="20000" redirectPort="8443" />
#调整最大线程数为1000,最小为200,这个线程的数量要反复调整,然后对比测试结果,找出一个适合自己的值

调整队列

代码语言:javascript
复制
[root@zutuanxue bin]# vim /opt/tomcat1/conf/server.xml 
<Connector port="8080" protocol="HTTP/1.1" maxThreads="1000" minSpareThreads="200" prestartminSpareThreads="true"	maxQueueSize="100" connectionTimeout="20000" redirectPort="8443" />

默认情况下,请求发送到tomcat,如果tomcat正忙,那么该请求会一直等待。这样虽然可以保证每个请求都能请求到,但是请求时间就会边长。有些时候,我们也不一定要求请求一定等待,可以设置最大等待队列大小,如果超过就不等待了。这样虽然有些请求是失败的,但是请求时间会虽短。典型的是12306。

参数介绍可以去官网查看:https://tomcat.apache.org/tomcat-9.0-doc/config/executor.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JMeter的作用
  • JMeter安装使用
  • 调整tomcat线程池
  • 调整队列
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档