利用Jmeter工具对服务器,数据库进行性能监控,压测,导出性能测试报告

  Jmeter是Apache基金会旗下的一款免费,开源,轻量级的性能测试工具,主要针对web应用程序客户端/服务器进行性能测试.它可以分别测试静态、动态资源(Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等),它可以通过线程组来模拟数个用户,在一段时间内同时登录服务器,数个用户并发对数据库进行访问,从而测试出服务器,数据库在一定负载情况下的性能状况

  Jmeter是基于Java语言开发的,所以它的运行依赖于Jre环境,在运行之前首先要下载jdk(最好下载8,太低的话会导致无法启动).配置好环境变量后,下载Jmeter(下载地址 Apache JMeter - Download Apache JMeter ),截止发文前最高版本为5.4.3,我这里使用3.0演示.

Jmeter文件(下载地址(链接:https://pan.baidu.com/s/1Rr3ZQ8gaawBRPUctkuWBxw 
提取码:1304,有效期30天)(JMeterPlugins-Extras.jar,JMeterPlugins-Standard.jar这两个包是针对客户端安装的.ServerAgent-是针对服务器端的)


1. Jmeter本身并没有提供对服务器CPU,Memory,Disks I/O等进行监控的功能,所以我们通过它的插件来完成. 上面文件下载后,把JMeterPlugins-Extras.jar,JMeterPlugins-Standard.jar两个包放到Jmeter安装目录下的\lib\ext下,然后去bin目录下双击 jmeter.bat文件运行. 右击 测试计划>>Add>>Threads(Users),当发现有jp@gc-开头的选项时即表示插件安装成功

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

 2. 右击 测试计划>>Add>>Threads(Users)>>Thread Group,添加线程组.右键 Thread group>>Add>>Sampler>>HTTP Request 添加Http请求,这里不设置参数值.而后 右键HTTP Request>>Add>>Listener>>jp@gc-PerfMon Metrics Collector.添加服务器端监控

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

 3. 这样客户端就配置好了,接下来配置服务端,连接工具连接服务器,把ServerAgent-2.2.3.zip上传到服务器,解压,把压缩包删除.进入ServerAgent-2.2.3下, 用命令 chmod 777 startAgent.sh 赋予其全部权限. ./startAgent.sh 运行.出现以下提示,即代表运行成功.(ServerAgent默认使用4444端口)

13aca8a0f9ff4770acff0d53b400c61c.png

 如果出现  Can't accept UDP connections等错误提示, 可能是你的4444端口被占用了,用命令 lsof -i:4444检测, 如果有程序占用,用 kill -9 pid  把它杀掉,再启动就行了

5. 启动成功后,可以用windows的DOS命令连接检测一下,  telnet 服务器IP 4444

如果连接不成功,主要有两个原因,一是你的telnet客户端或者服务没有启动,具体启动方法百度.二是你服务器端的防火墙端口没有开启,开启方法自行百度.

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

服务器端出现以下提示即代表连接成功

8da8d46aa4ed41a7a559b0e8f66241c2.png

 6. 连接成功后我们就可以在Jmeter上开始进行测试.点击 jp@gc-PerfMon Metrics Collector,在Servers Monitor中点击Add Row,添加服务器IP和端口号,Metric to collect下选择CPU/Memory/Disks I/O.然后设置线程组执行次数和循环次数,这里我设置执行1000次,循环10次,100秒内执行完

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

 7. 点运行按钮,Chart中出现以下画面即代表监控成功

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

 从画面中我们看出服务器CPU,内存,磁盘的运行状况,CPU和磁盘曲线在正常范围内波动,表示CPU、磁盘相对趋于稳定,内存曲线无波动一直处于一个稳定的值,表示内存也趋于稳定.

8 .这种监控一般配合web服务器来一起测试,访问web,监控服务器,这样才有实际的意义.我已经预装了Tomcat,这里我们以Tomcat为例来进行.首先保证tomcat能正常访问.然后在HTTP Request中添加以下参数.

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

9. 点击运行,然后观察曲线变化

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

 从图中我们看出各性能曲线都趋于正常,相对我们直接监控服务器CPU和磁盘更加稳定了.这是由于云服务器的保护机制,像云服务器的大型厂商,阿里、腾讯、华为,都针对各家的云服务器开发有保护技术,我这里监控的是阿里云服务器,当我再次运行后去服务端用 top命令观察cpu的状况,看到Java服务在首行,其次有一个AliyunDun的服务. 查阅官网得知,阿里云盾是针对阿里云服务器的一项保护技术,它可以过滤掉90%的异常访问包括一些DOS攻击,从而达到保护服务器的目的。


接下来我们测试数据库的性能(以mysql为例)

1. 这里我们着重于数据库的性能,不考虑网速的影响,所以我们采用本地的数据库(我安装的是Mysql8.0),打开Jmeter,添加线程组,右键 线程组>> Config Element >> JDBC Connection Configuration 添加JDBC配置, Variable Name处填写一个变量名 mysql (注意,自己起的名字要记住,后面要引用),在Database Connection Configuration处分别输入以下数据

fdf5686bc1314b13b956e537bae2891b.png

 Database URL是你的数据库连接地址,JDBC Driver class是加载的驱动类(如果你驱动包是5以上的版本,驱动类为com.mysql.cj.jdbc.Driver),Username是你的数据库用户名,Password是密码.

2. 右键线程组 >> Sampler >> JDBC Request 添加JDBC请求, Variable Name 后填写mysql(这里引用的是JDBC Connection Configuration中的Variable Name).Query Type 后选择 Select Statement,这里我们主要测试对数据库的查询,在实际开发中查询也是首要的测试点,Query下输入sql语句, 可以联查多张表.

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

 3. 以上步骤完成后,对数据库的测试配置就完成了,最后添加察看结果树(View Results Tree),聚合报告(Aggregate Report)。在执行之前还需要把JDBC的连接jar包引入进来.点击测试计划,在最下面Add directory or jar to calsspath处点击 Browser,然后选择你本地的jar包 确定

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

 4. 选择线程组,设置执行次数100,循环次数10,执行时间100秒.点击运行. 点击 Aggregate Report查看

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

从上图看出,测试执行了1000次,平均响应时间2毫秒,无出错率,1秒内的吞吐量为10,趋于稳定.

各参数的解释如下 ,响应时间,出错率,吞吐量,最小响应,最大响应是测试的几个重要参数指标.

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic546L5Zyj56We6aOO,size_20,color_FFFFFF,t_70,g_se,x_16

5. 最后一步,导出聚合报告数据. 点击底部的 Save Table Data,选择存放位置,会导出一个.CSV的Excel文件.

a7f3c3779bc448e69f45cc3e6c1b53e3.png

除此之外还可以通过Jmeter的非GUI运行方式导出


至此,我们已完成了对服务器、数据库的压测,从而得出了测试数据.通过对测试数据的分析可以帮助我们在服务器配置参数和数据库参数配置方面进行调优,从而使其达到一个最佳的性能状态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/285496.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode-热题100:42. 接雨水

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入: height [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 解释: 上面是由数组 [0,1,0,2,1,…

CICD流水线(ali)

后端CICD 一、打开云效流水线,创建流水线

HarmonyOS NEXT应用开发之听歌识曲水波纹特效案例

介绍 在很多应用中,会出现点击按钮出现水波纹的特效。 效果图预览 使用说明 进入页面,点击按钮,触发水波纹动画。再次点击按钮,停止水波纹动画。 实现思路 本例涉及的关键特性和实现方案如下: 要实现存在两个连续…

TikTok云手机是什么原理?

社交媒体的快速发展和普及,TikTok已成为全球最受欢迎的短视频平台之一,吸引了数以亿计的用户。在TikTok上,许多用户和内容创作者都希望能够更灵活地管理和运营多个账号,这就需要借助云手机技术。那么,TikTok云手机究竟…

集合系列(十三) -红黑树实现分析详解

一、故事的起因 JDK1.8最重要的就是引入了红黑树的设计(当冲突的链表长度超过8个的时候),为什么要这样设计呢?好处就是避免在最极端的情况下冲突链表变得很长很长,在查询的时候,效率会非常慢。 红黑树查询&…

uniapp自定义导航栏左中右内容和图标,以及点击事件

uniapp自定义导航栏左中右内容和图标&#xff0c;以及点击事件 效果&#xff1a; 页面&#xff1a; <view class"navigation-bar"><view class"navigation-bar-left" click"navigateBack"><u-icon name"arrow-left"…

数学建模(灰色关联度 python代码 案例)

目录 介绍&#xff1a; 模板&#xff1a; 案例&#xff1a;哪些原因影响结婚率 数据标准化&#xff1a; 灰色关联度系数&#xff1a; 完整代码&#xff1a; 结果&#xff1a; 介绍&#xff1a; 灰色关联度是一种多指标综合评价方法&#xff0c;用于分析和评价不同指标之…

【DP】01背包问题与完全背包问题

一、01背包问题 有 N件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 输入格式 第一行两个整数&…

Email API有哪些主要功能?如何用API发信?

Email API的安全性如何保障&#xff1f;如何选择API进行集成&#xff1f; Email API简化了电子邮件交互的复杂性&#xff0c;让开发者能够轻松地将邮件功能集成到他们的应用中。那么&#xff0c;Email API究竟有哪些主要功能呢&#xff1f;接下来&#xff0c;AokSend将一一探讨…

在Linux搭建Emlog博客结合内网穿透实现公网访问本地个人网站

文章目录 前言1. 网站搭建1.1 Emolog网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总结 前言 博客作为使…

小迪安全46WEB 攻防-通用漏洞PHP 反序列化原生类漏洞绕过公私有属性

#知识点&#xff1a; 1、反序列化魔术方法全解 2、反序列化变量属性全解 3、反序列化魔术方法原生类 4、反序列化语言特性漏洞绕过 -其他魔术方法 -共有&私有&保护 -语言模式方法漏洞 -原生类获取利用配合 #反序列化利用大概分类三类 -魔术方法的调用…

Backend - Echarts(柱状条形图)

一、下载并安装 &#xff08;一&#xff09;官网 https://echarts.apache.org/zh/index.html &#xff08;二&#xff09;下载依赖 1. 官网里选择下载方式 https://echarts.apache.org/handbook/zh/basics/download/ 2. 官网github方式下载 https://github.com/apache/echa…

如何利用AI助力你的工作,学会这些AI操作秘密,让AI给你打工赚钱

随着科技的进步,AI已逐渐融入我们日常生活的方方面面,成为提升工作效率、拓展个人能力的得力助手。在这个时代,不是AI替代我们,而是那些懂得利用AI的同事将更具竞争力。学会让AI为你“打工”,不仅能够节省时间、提升效率,还能帮助我们发现新机会,实现创新。 AI的优势…

数据结构——认识二叉树

这是一篇回顾二叉树概念的文章 前言&#xff1a;一、了解树形结构1.2 树的定义2.2 树的相关概念2.2 树的表示形式 二、了解二叉树结构和性质2.1 什么是二叉树&#xff1f;2.2 二叉树的性质2.3 二叉树的遍历2.3 二叉树的应用范围2.5 二叉树的优缺点 三、掌握二叉树的存储结构3.1…

关闭 Microsoft Word 2010 配置窗口

关闭 Microsoft Word 2010 配置窗口 References 出现这种问题&#xff0c;主要是安装时所用账户和目前登陆的账户不为同一个账户造成的。或者你进行过覆盖安装或是重新安装过系统&#xff0c;但是 office 的安装目录没有更改。先激活 Microsoft Office&#xff0c;然后执行下列…

springcloud第4季 负载均衡的介绍3

一 loadbalance 1.1 负载均衡的介绍 使用注解loadbalance&#xff0c;是一个客户端的负载均衡器&#xff1b;通过之前已经从注册中心拉取缓存到本地的服务列表中&#xff0c;获取服务进行轮询负载请求服务列表中的数据。 轮询原理 1.2 loadbalance工作流程 loadBalance工作…

-bash: ./1.sh: /bin/bash^M: bad interpreter: No such file or directory解决方法

1、执行脚本 ./1.sh时报如下错误 -bash: ./1.sh: /bin/bash^M: bad interpreter: No such file or directory 2、在Windows编辑的脚本导入Linux系统中&#xff0c;执行报错问题 yum install -y dos2unix 3、或者本地安装 rpm -ivh /mnt/Packages/dos...... 4、然…

opencv各个模块介绍(1)

Core 模块&#xff1a;核心模块&#xff0c;提供了基本的数据结构和功能。 常用的核心函数&#xff1a; cv::Mat&#xff1a;表示多维数组的数据结构&#xff0c;是OpenCV中最常用的类之一&#xff0c;用于存储图像数据和进行矩阵运算。 cv::Scalar&#xff1a;用于表示多通道…

Python综合实战案例-数据清洗分析

写在前面&#xff1a; 本次是根据前文讲解的爬虫、数据清洗、分析进行的一个纵隔讲解案例&#xff0c;也是对自己这段时间python爬虫、数据分析方向的一个总结。 本例设计一个豆瓣读书数据⽂件&#xff0c;book.xlsx⽂件保存的是爬取豆瓣⽹站得到的图书数据&#xff0c;共 6067…

瑞芯微RK3576|触觉智能:开启科技新篇章

更多产品详情可关注深圳触觉智能官网&#xff01; “瑞芯微&#xff0c;创新不止步&#xff01;”——全新芯片RK3576即将震撼登场。指引科技风潮&#xff0c;创造未来无限可能&#xff01;这款芯片在瑞芯微不断创新和突破的道路上&#xff0c;不仅是对过往成就的完美延续&…