Jmeter之tomcat性能测试+性能改进措施-阿里云开发者社区

开发者社区> 开发与运维> 正文

Jmeter之tomcat性能测试+性能改进措施

简介: Jmeter用于tomcat性能测试,因为项目部署在tomcat,正常情况下,一个tomcat可以承受500个并发,通过修改配置,及其相关的tomcat优化,可以承受到1000个并发。 如何测试tomcat优化前和优化后的结果? 通过Jmeter测试,就能达到对应的效果 Jmeter测试tomcat比较简单 1.

Jmeter用于tomcat性能测试,因为项目部署在tomcat,正常情况下,一个tomcat可以承受500个并发,通过修改配置,及其相关的tomcat优化,可以承受到1000个并发。

如何测试tomcat优化前和优化后的结果?

通过Jmeter测试,就能达到对应的效果

Jmeter测试tomcat比较简单

1.建立对应的线程组

 

2.建立Http请求 需要填写的一个是协议名称,一个是IP地址或域名,一个是端口号,还有一个是路径

这个路径默认不填也行,如果具体到post或get请求及其携带参数,就需要填写

 

如果测试具体的get或post请求,加请求url和对应的参数,如下图所示:

注意和postMan工具有些相似,不同于postman,Jmeter可以进行多用户测试,即多个线程测试

 

 

 通过察看结果树,可以查看请求失败:

 

聚合报告可供分析:

 server.xml文件:

线程池优化:

连接池优化:

 

Executor重要参数说明:

name:共享线程池的名字。这是Connector为了共享线程池要引用的名字,该名字必须唯一。默认值:None;

namePrefix:在JVM上,每个运行线程都可以有一个name 字符串。这一属性为线程池中每个线程的name字符串设置了一个前缀,Tomcat将把线程号追加到这一前缀的后面。默认值:tomcat-exec-;

maxThreads:该线程池可以容纳的最大线程数。默认值:200;

maxIdleTime:在Tomcat关闭一个空闲线程之前,允许空闲线程持续的时间(以毫秒为单位)。只有当前活跃的线程数大于minSpareThread的值,才会关闭空闲线程。默认值:60000(一分钟)。

minSpareThreads:Tomcat应该始终打开的最小不活跃线程数。默认值:25。

threadPriority:线程的等级。默认是Thread.NORM_PRIORITY

 

连接池重要参数说明:

executor:表示使用该参数值对应的线程池;

minProcessors:服务器启动时创建的处理请求的线程数;

maxProcessors:最大可以创建的处理请求的线程数;

acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

 

 

这时你会发现性能会得到很大的提升

当然必要的时候,需要修改tomcat的内存

 

tomcat的3种运行模式 

bio: 
默认的模式,性能非常低下,没有经过任何优化处理和支持.

nio: 
nio(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。

apr: 
安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.


启动NIO模式

修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol

 

上述比对,这也就是我们为什么选择NIO的原因

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章