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的原因

Jmeter之tomcat性能测试+性能改进措施的更多相关文章

  1. jmeter对tomcat性能测试

    主要对tomcat的参数做一些记录(jmeter和tomcat在同一个计算机,可能引起测试误差) 我的计算机配置  4核8线程  8G内存 案例一 tomcat  JVM  1.8G堆内存,无数据库操 ...

  2. JMeter学习(十四)JMeter监控Tomcat性能

    使用jmeter的tomcat监视器功能,可以通过向tomcat的status页面发送get请求,得到资源使用信息,然后转换为只直观的图像方式,这样的话,就可以监视到服务器的资源使用情况,不过需要注意 ...

  3. Tomcat 服务器性能优化

    简介 考虑一下这种场景,你开发了一个应用,它有十分优秀的布局设计,最新的特性以及其它的优秀特点.但是在性能这方面欠缺,不管这个应用如何都会遭到客户拒绝.客户总是期望它们的应用应该有更好的性能.如果你在 ...

  4. Tomcat服务器性能优化

    在这篇文章里分以下的七个步骤,按照这些步骤走,Tomcat服务器的性能就能改善哦. 增加JVM堆(heap) 解决内存泄漏问题 线程池(thread pool)的设置 压缩 调节数据库性能 Tomca ...

  5. 4月27号开学! 第6期《jmeter实战接口自动化+性能》课程,零基础也能学

    2019年 第6期<jmeter实战接口自动化+性能>课程,4月27号开学! 主讲老师:飞天小子 上课方式:QQ群视频在线教学 本期上课时间:4月27号-6月9号,每周六.周日晚上20:0 ...

  6. Jmeter Http接口性能测试

    Jmeter Http接口性能测试 1.      启动Jmeter Jmeter下载解压即可使用,Jmeter启动,点击D:\ProgramFiles\jmeter\apache-jmeter-2. ...

  7. 【技术博客】 利用Postman和Jmeter进行接口性能测试

    利用Postman和Jmeter进行接口性能测试 作者:ZBW 版本:v1.1 在Phylab的开发过程中,对于生成报告接口的性能考量十分重要.原有的Latex接口虽然生成的报告美观,但编译Latex ...

  8. .NET 7 性能改进 -- 至今为止最快的.NET平台

    2022年8月31日 Stephen Toub 发布的关于 .NET 7 性能改进的博客, 核心主题是 .NET 7 速度很快. 这篇博客非常的长,我尝试将它拷贝到Word 里,拷贝的时间都花了几分钟 ...

  9. .NET 4.6中的性能改进

    .NET 4.6中带来了一些与性能改进相关的CLR特性,这些特性中有一部分将会自动生效,而另外一些特性,例如SIMD与异步本地存储(Async Local Storage)则需要对编写应用的方式进行某 ...

随机推荐

  1. 菜鸟入门【ASP.NET Core】5:命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options

      命令行配置 我们通过vs2017创建一个控制台项目CommandLineSample 可以看到现在项目以来的是dotnet core framework 我们需要吧asp.net core引用进来 ...

  2. LeetCode子域名访问计数-Python3.7<五>

    上一篇:LeetCode 键盘行<四> 题目:https://leetcode-cn.com/problems/subdomain-visit-count/description/ 一个网 ...

  3. linux下如何批量杀JAVA进程或某个进程方法

    linux下如何批量杀JAVA进程或某个进程方法 在工作中经常需要停止JAVA进程,停止时间也比较长,那么有时候因为一些情况,需要把 linux 下JAVA所有进程 kill 掉,又不能用killal ...

  4. Java 快速排序法 冒泡排序法 选择排序法 插入排序法

    1.快速排序的原理: 选择一个关键值作为基准值.比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的). 从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果 ...

  5. 外机连接本机的虚拟机服务器_VM端口映射

    说明:有时候我们把服务器放在虚拟机上的时候只能本机在网页上连接,但是如果想要别的电脑也能访问的话,需要在VM上做一个映射.实现如下: 设置VM端口映射 一.打开VM->编辑->虚拟网络编辑 ...

  6. Flash饼状图统计代码

    index.html文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...

  7. userDefineFunc.js

    var scareMe = function(){ console.log("cynthia") scareMe = function(){ console.log("w ...

  8. Python 中 and 和 or 的短路原则

    对于 and 来说: 如果第一个条件的结论为假,那么 and 前后两个条件组成的表达式计算结果一定为假,后面的条件计算机不会进行计算 对于 or 来说: 如果第一个条件的结论为真,那么 or 前后两个 ...

  9. 2017-10-29 用中文命名API的意义和途径

    "中文编程"知乎专栏原链 在前文对在代码中使用中文命名的质疑与回应中阐述了在代码中使用中文命名的益处. 此文将从软件使用者的角度阐述对API中文化的意义并探讨实现途径. 当然, 文 ...

  10. 视觉slam领域经典综述和具体应用场景

    一.经典综述文章 1.  Durrant-Whyte H, Bailey T. Simultaneous localization and mapping: part I[J]. IEEE robot ...