目录

一、jmeter分布式配置

1.分布式介绍

2.配置JDK

3.slave机器配置(linux系统为例,windows资源杂乱不建议使用)

4.master机器配置(windows系统为例,作为命令下发者windows操作系统即满足使用)

5.一些坑:

6. 补充说明

二、influxdb2(时序数据库)安装配置

1.简介

2.数据库的安装

3.influxdb2.0数据库的使用

4.使用influxdb2进行监控

4.1influxdb2自带的监控,监控自身

4.2直接使用influxdb2来监控被测服务器的“硬件资源”

三、Grafana安装配置

3.1简介:

3.2安装:

3.3使用步骤:

四、Jmeter与infludb2集成并展示在grafana中

4.1Jmeter把数据写入influxdb2数据库(推荐方法二)

4.1.1Jmeter把数据写入influxdb2数据库的方法一

4.1.2Jmeter把数据写入influxdb2数据库的方法二

4.2Grafana展示jmeter写入influxdb2的数据

五、性能测试报告


一、jmeter分布式配置

1.分布式介绍

控制机称为调度机(master),被控制机(服务机器)称为执行机(slave)。执行时,master会把脚本同时发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的(GUI会占用系统资源),执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

JMETER 为什么需要分布式

单台压测机通常会遇到客户端瓶颈,受制于客户机的性能。可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况.由于JMeter 并发的时候每并发一个用户(线程组)都需要消耗压测机的cpu、内存、带宽等服务器资源。随并发用户数量增加,单台压力机已经没法满足用户的业务需求,所以,需要通过分布式多台压测机。

假设当前单台压测机的内存配置为:8G,机器未部署其他的应用,只安装JDK  和 JMETER 等应用,该单台压测机并发的用户数量不能超过1000,如果并发用户数量超过1000,就会导致单台压测机内存消耗尽,JMETER  工具出现假死现象,聚合报告中间的响应时间就会失真,压测结果失去参考价值。所以,当并发用户数量超过1000 用户的时候,就需要采用分布式进行压测,一台压测机作为控制机器,另外一台机器做为代理机器。

2.配置JDK

无论执行机是windows系统还是linux系统,首先要配置好java环境

Windows版本JDK链接:https://pan.baidu.com/s/1G2VcZpnv6GuWlf5EYDtuNw 提取码:8888

LinuxJDK链接:https://pan.baidu.com/s/1LEIFnmGDDu4261aFeYRFRA 提取码:8888

Windows\Linux配置JDK:(https://blog.csdn.net/weixin_43080930/article/details/127428131)

3.slave机器配置(linux系统为例,windows资源杂乱不建议使用)

3.1将jmeter装入Linux服务器中,这个时候可以注意一下,调度机和执行机安装相同的jmeter和JDK版本,避免因为版本不同而导致运行报错

3.2  安装完成后进入jmeter目录下的bin目录中,打开jmeter.properties文件(以我为例完整路径为/root/apache-jmeter-5.4.1/bin/jmeter.properties),修改server.rmi.ssl.disable=false,改为true,并去掉注释

3.3启动目录下的jmeter-server文件

刚安装好jmeter后jmeter-server无法运行,需要给改文件权限 chmod 777 jmeter-server ,执行后文件名显示绿色可以运行改文件,,运行命令 ./jmeter-server,(输入一遍exit后文件开始执行,不知道为什么,瞎操作弄出来的)

如果遇到显示an error情况,有两种解决方式:

第一种:需要使用命令./jmeter-server -Djava.rmi.server.hostname=主机IP,主机IP为slave机器的IP(就是运行该文件的机器IP)

第二种:修改slave机器的jmeter-server文件,修改RMI_HOST_DEF=-Djava.rmi.server.hostname=主机IP,主机IP为slave机器的IP(就是运行该文件的机器IP)

修改完执行./jmeter-server,输入exit后显示

表示一台slave机器运行文件成功,等待调度机(master)下发运行脚本

如果需要多台slave机器,则重复上述步骤即可

4.master机器配置(windows系统为例,作为命令下发者windows操作系统即满足使用)

4.1要保证master与slave机器jmeter版本相同,打开jmeter/bin/ jmeter.properties,修改项如下:

server_port=1099

server.rm.localport =1099

server.rmi.ssl.disable=true //修改FALSE为TRUE

remote_hosts=192.168.4.170:1099,192.168.4.171:1099,     //填入的是slave机器IP:端口,两台为例,多台slave机器用英文逗号分隔开即可

4.2在master机器上打开jmeter-运行-远程启动中可以看到已经添加成功

在运行-远程启动所有启动脚本,slaver机器显示starting、finished则表示命令下发执行成功,到此分布式jmeter配置完成

5.一些坑:

分布式主要是保证master机器与slaver机器连接成功,如果遇到两端无法连接问题,如下端口连接失败,无法互相ping通,则用以下处理方式

首先Slaver机查看端口 netstat -tunlp|grep 端口

端口有,但是还是ping不通,需要查看防火墙,firewall-cmd --zone=public --query-port=1099/tcp

上面则是系统没有启动FirewallID服务,(systemctl start firewalld.service #开启服务 使用该命令启动服务即可,systemctl enable firewalld.service #设置开机启动)

以44957该端口为例,显示no则是防火墙没有开放44957端口

firewall-cmd --zone=public --add-port=44957/tcp --permanent //开放44957端口

firewall-cmd --reload                                                                 //重新载入 firewall

firewall-cmd --zone=public --query-port=44957/tcp              //查看44957端口是否已经开放 显示yes 则开放成功。

6. 补充说明

6.1在进行分布式配置前,需要确保各个服务器之间可以互相ping或telnet,不然会影响发送和接收相关信息

6.2使用多个Linux服务器时,尽量保证多个服务器的时区相同,不然返回的结果时间可能会存在误差

6.3分布式并不是将一个jmeter脚本的请求分送给各个slave机器执行,而是在多个slave机器上同时执行jmeter脚本请求,所以如果线程为10,循环为1,请求为1,slave服务器为2台,那么两台机器同时启动所发送的请求为10*1*1*2=20次。

6.4如果你的jmeter测试脚本需要调用外部变量即csv文件等,需要将csv文件赋值到各个slave机器上的相同路径下,不然在slave机器运行时会取不到数据

二、influxdb2(时序数据库)安装配置

1.简介

是一个时序数据库,按照时间顺序来存储数据

2.数据库的安装

方法一:直接使用编译好的包

Os系统:linux—Ubuntu\centos

Releases · influxdata/influxdb · GitHub (包地址)

rpm:

wget  https://dl.influxdata.com/influxdb/releases/influxdb2-2.3.0.x86_64.rpm  (版本地址)

Yum install influxdb2-2.3.0.x86_64.rpm -y

启动:‘systemctl start influxdb’ ‘service influxdb start influxdb start’ ‘influxdb run’

方法二:docker方式来安装

安装docker

下面介绍离线安装:

文件自取-链接:https://pan.baidu.com/s/14NF2cl-hvzC8M5CiI0NiXA 提取码:8888

在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过xftp工具直接上传到linux目录)

cd /root/setup/docker                                        # 进入/root/setup/docker 文件夹

chmod +x install.sh                                          # 为 install.sh添加执行权限

./install.sh -f docker-20.10.6.tgz                       # 安装

安装成功后,会出现如下信息:

Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

docker 20.10.6 install success!

安装成功以后,检查安装状态:

docker info

小课堂:docker下载慢可以配置阿里镜像

阿里镜像:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

Os:centos+docker

安装:docker run -itd –name influxdb2 -p 8086

访问地址:http://influxdb_ip:8086 (以我为例 http://192.168.4.170:8086)

启动:docker start influxdb2

3.influxdb2.0数据库的使用

步骤

--UI界面中点击get start

--记住:org、bucket名称

--点击用户头像>about 看到org、userid

--点击data>APITokens 可以查看token信息

“oFE_m7WZKFnyKwQ5bmK06V-LARU1I4L69Y5liuy0OxotXbYyYtOuFHai2ieKVvsjj4OrQHNy5mx_Ctkoa_e2eg==”

--点击data>Buckets 可以查看bucket id

“afef7173deb750f5”

4.使用influxdb2进行监控

4.1influxdb2自带的监控,监控自身

点击boards>influxdb2.0 oss metrics

上图就是展示的influxdb2.0数据库所在机器的运行数据

4.2直接使用influxdb2来监控被测服务器的“硬件资源”

Data>telegraf>create confinguration>ststem continue

自定义名称点击create

被监控的机器安装telegraf

cat <<EOF | sudo tee /etc/yum.repos.d/influxdata.repo

[influxdata]

name = InfluxData Repository - Stable

baseurl = https://repos.influxdata.com/stable/\$basearch/main

enabled = 1

gpgcheck = 1

gpgkey = https://repos.influxdata.com/influxdb.key

EOF

sudo yum install telegraf -y

被测机器运行上图命令token

exportINFLUX_TOKEN=14av0RB3DIigk2u8ckEpiqXsSUhoIu5s9nUlwNYafwhef685YvVdqtJ4D6yxQAcR0uZnDVskjWjVZFJBogExeA==

被测机器运行上图命令Telegraf:

exportINFLUX_TOKEN=14av0RB3DIigk2u8ckEpiqXsSUhoIu5s9nUlwNYafwhef685YvVdqtJ4D6yxQAcR0uZnDVskjWjVZFJBogExeA==

boards>system可查看监控数据

三、Grafana安装配置

3.1简介:

Grafana 是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据,即一个可视化工具用于展示数据。我们使用它的目的是展示出influxdb2.0数据库中的数据

3.2安装:

方法一:编译包安装

Rpm: Releases · grafana/grafana · GitHub (只找到了版本没有找到rpm的地址)

方法二:docker方式

安装命令:docker run -itd –name Grafana -p 3000:3000 grafana/grafana

访问地址:http://grafana_ip:3000  账号/密码:admin/admin

3.3使用步骤:

--创建数据源

--选择influxdb

--Query language:选择flux

--URL:http://influxdb_ip:8086

--Influxdb details

--Save&test

引入模板(简单使用):

Import>14126  点击load 选择数据源 点击import

官方模板库:https://grafana.com/dashboards

四、Jmeter与infludb2集成并展示在grafana中

4.1Jmeter把数据写入influxdb2数据库(推荐方法二)

4.1.1Jmeter把数据写入influxdb2数据库的方法一

Jmeter的版本,要用5.4以上的版本写好脚本,然后添加后端监听器

监听器的实现:

Influxdburl: http://host_to_change:8086/write?db=jmeter&org=?&bucket=? 将host_to_change改为influxdb2_ip

添加influxdbToken ,填写了自己的APIToken

运行,结果报错:

ERROR o.a.j.v.b.i.HttpMetricsSender: Error writing metrics to influxDB Url: http://192.168.4.170:8086/write?db=jmeter&org=test&bucket=test-bucket, responseCode: 404, responseBody: {"code":"not found","message":"no dbrp mapping found"}

解决办法:

①要在influxdb2的机器上安装influxdb-cli,下载influxdb-cli软件

wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.4.0-linux-amd64.tar.gz //下载

tar xvfz influxdb2-client-2.4.0-linux-amd64.tar.gz //解压

下载地址:Downloads

进入解压后的文件

②执行

#创建配置信息让influxdb-cli能连接到influxdb2

./influx config create --config-name influxdb-cli-config \

--host-url http://127.0.0.1:8086 \

--org test \

--token oFE_m7WZKFnyKwQ5bmK06V-LARU1I4L69Y5liuy0OxotXbYyYtOuFHai2ieKVvsjj4OrQHNy5mx_Ctkoa_e2eg== \

--active

#创建库

./influx v1 dbrp create \

--db jmeter \

--rp jmeter \

--bucket-id afef7173deb750f5 \

--default

③确认是否解决

无报错,问题解决接下来需要确认我们使用jmeter的后端监听器把数据写入了influxdb2的数据库中

④可以打开任意一个终端输入以下命令进行数据查询

curl --get http://192.168.4.170:8086/query \

--header "Authorization: Token oFE_m7WZKFnyKwQ5bmK06V-LARU1I4L69Y5liuy0OxotXbYyYtOuFHai2ieKVvsjj4OrQHNy5mx_Ctkoa_e2eg==" \

--data-urlencode "q=select * from jmeter.jmeter.jmeter order by time desc limit 2;"

4.1.2Jmeter把数据写入influxdb2数据库的方法二

后端监听器的实现:

InfluxdbUrl: http://192.168.4.170:8086/write?db=jmeter&org=test&bucket=test-bucket

Influxdb Token:(API Token)

确认数据是否更新入库

4.2Grafana展示jmeter写入influxdb2的数据

Grafana引入模板 ID5496(引入方法上文已讲),但是数据不能正常显示

原因:因为5496模板基于我们influxdb1.x版本的,不支持influxdb2.x高版本

Influxdb1.x版本,获取数据,用的是influxQL语言

Influxdb2.x版本,获取数据,用的是flux语言

Grafana中获取不到数据,怎么解决?

自己写模板  —难点就在怎么sql

Influxdb-ui界面>explore,选择Bucket名称,measure搜索jmeter(数据库中的表),filed你可以自己勾选(选择要展示/查询的数据),点击submit,点击script editor(生成查询语句在grafana中使用)

自定义图标展示成功

五、性能测试报告

性能测试报告

XXXX有限公司

XXXX年X月

版本记录

版本

作者

文档变化内容描述

日期

VXX

XX

XX

XXXX-XX-XX

目录

前言

文档目的

本测试报告对XX系统的性能测试说明,主要对测试环境、测试范围说明和测试结果的总结、分析

报告适用以下读者:

测试人员:了解被测系统的性能测试策略和性能指标,可以作为迭代版本性能测试的参考数据;

产品经理:产品经理了解系统的现有性能指标,指导后续产品设计;

运营人员:运营人员了解系统的现有性能指标,便于运营推广工作的实施。

测试目的与范围

测试目的

在大用户量、数据量的情况下,获得服务器运行时的相关数据,从而进行分析,找出系统瓶颈,提高系统的性能指标和稳定性。

测试范围

本次性能测试范围包括如下接口:

XXXX

XXXX

测试环境与工具

测试环境

ID

操作系统

配置

部署服务

IP

服务器1

CentOS 7

CPU  8核

内存 16G

磁盘 1024G

XXXX

XXX.XXX.XX.XX

服务器2

CentOS 7

CPU  8核

内存 16G

磁盘 1024G

XXXX

XXX.XXX.XX.XX

服务器3

CentOS 7

CPU  8核

内存 16G

磁盘 1024G

XXXX

XXX.XXX.XX.XX

测试工具

测试工具:本次测试使用的负载工具是JmeterXX.X,这是一款成熟的、开源的性能测试工具。通过模拟用户实施并发负载及实时性能检测的方法来预测系统的行为并优化系统性能。

服务器监控工具:采用Grafana监控系统资源占用情况。

测试结果

性能测试结果

测试场景

XXXX

总请求数

并发量

正确率%

TPS

平均响应

CPU%

内存%

持续时间

XXXX

XX

XX

XX

XX

XX

XX

XX

服务器1

服务器2

如上,三大工具简单使用已完成,对于性能测试这只是个开始,后续会更新性能调优,码字不易望支持!

性能测试平台搭建及简单使用(jmeter分布式+influxdb2.0+grafana)附性能测试报告相关推荐

  1. 性能测试 性能测试实战(八)Jmeter性能测试平台开发,性能测试平台架构解析 ,性能测试平台搭建 分布式性能压测平台 Jmeter分布式性能测试管理平台 性能测试平台示例案例 《完结篇》

    文章目录 一.前言 二.Jmeter分布式性能测试平台 介绍 1.Jmter分布式性能测试平台 简介 2.Jmeter分布式性能测试平台 优秀案例1 3.Jmeter分布式性能测试平台 优秀案例2 4 ...

  2. nGrinder性能测试平台搭建(LVS压力测试)

    1. nGrinder是什么 nGrinder是一个免费的.开放源代码的Web性能测试平台.运行在应用中间件服务器中运行.它由一个控制端和多个代理端组成.通过控制端(浏览器访问)建立测试场景,然后通过 ...

  3. 搭建一个简单的问答系统(v2.0)

    之前刚接触机器学习的时候,写过一篇<基于sklearn库,搭建一个简单的问答系统>.此篇文章是在上篇的逻辑上,对一些函数进行了优化,并对检索方式进行了一些优化,再各个环节上时间复杂度都提高 ...

  4. 性能测试 性能测试实战(六)Jmeter + prometheus-plugin + Prometheus Jmeter性能测试环境搭建 普罗米修斯插件 性能监控 性能数据可视化平台 性能测试平台搭建

    文章目录 一.前言 二.Jmeter 性能测试持续可视化环境搭建 1.Jmeter

  5. 海思3559平台搭建:简单烧写说明

    前言   在板子上存在uboot的前提下进行如下操作,如果板子上从未烧写过uboot,就需要使用 HiTool 工具进行烧写.HiTool 工具位置放在 Hi3559A***/01.software/ ...

  6. 高小明的云平台搭建系列之一——物理机装 ESXi 5.0

    废话木有,直接开始.IPMI设置略过. 第一步.选择iso镜像. 第二步.挂载虚拟CD 第三步,重启设备. 第四步,启动BOOT选项.在设备开始时,按F11  选择虚拟CD 回车之,好了,已经开始安装 ...

  7. 云计算 openstack 云平台搭建详细教程(基于 Vmware 虚拟机搭建)

    OpenStack 和 云计算 1.OpenStack 基本概述 早在1988年,类似云计算概念的"网络就是计算机"概念就被 SUN 微系统公司 的合作创建者约翰 · 盖奇首次提出 ...

  8. 性能测试搭建Jmeter分布式压测与监控

    对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题:如果当前架构快达到性能瓶颈了,是横向扩容性能提升大 ...

  9. 使用Jmeter进行性能测试及性能监控平台搭建

    目录 一.性能测试基本概念 1.为什么要做性能测试? 2.什么是性能测试? 3.常见性能压力测试工具 4.JMeter 优点 5.JMeter安装 二.压测脚本的录制与编写 一.JMeter配置 二. ...

最新文章

  1. java定时器返回future_java 定时器线程池(ScheduledThreadPoolExecutor)的实现
  2. Windows Server 2016 TP5下载及测试序列号
  3. Boost:是否对齐的测试程序
  4. vue-cli 中使用 less 插件
  5. 解析IP地址与MAC地址
  6. opencv学习笔记3
  7. exchange2007开启反垃圾邮件功能
  8. android刷新界面的几种方法,Android UI更新的几种方法
  9. sqli-labs Less-11 and Less-12
  10. linux下c语言动态库生成方法
  11. Eclipse+Java+Swing实现学校教材管理系统
  12. 下载pyboard的flash中的驱动程序_教你如何安装打印机驱动程序
  13. Http——Post上传文件并传递其他参数信息
  14. Android Native报错定位(addr2line工具的使用)
  15. Spring源码解析系列汇总
  16. IOS逆向-静态分析
  17. Stm32 DHT11
  18. ipv6访问文件服务器,开启IPv6,让你的局域网可以使用IPV6进行共享文件夹的访问...
  19. 如何提高自己代码的可读性?
  20. 长沙举办智慧城市供应链沙龙

热门文章

  1. Henry前端笔记之 Node及npm相关
  2. 生产任务分配问题 matlab+lingo
  3. java excel 插入新行_POI ,Java 操作 Excel 實現行的插入(insert row)
  4. C语言顺序结构(解决二元一次方程)
  5. 这份程序员常用技术栈和工具清单,刷爆朋友圈……
  6. ssh隧道-能ssh就能http和tcp,通过ssh就能访问内网web页面和数据库
  7. 沃通PDF签名证书 保障电子发票真实有效
  8. 高考大数据:全国31省高考难度,哪个才是地狱模式?
  9. win7 32/64位系统安装ug nx4.0
  10. 简图记录-《君主论》阅读总结