代码改变世界

【磐维数据库】PanWeiDB_POC_Jmeter性能测试方案

2025-03-31 09:29  狂澜与玉昆0950  阅读(126)  评论(0)    收藏  举报

中国移动磐维数据是基于openGauss定制开发的中国移动自用版OLTP数据库。自去2023年年12月发布以来,受到广泛关注,目前已成功上线百余套。 在产品落地的过程中,我们积累了大量的迁移、适配,以及问题分析诊断的经验。 北京海量数据技术股份有限公司,作为移动磐维集中式数据库外协厂商,对集中式磐维数据库的运维、管理、开发等均有深入了解。在江西移动现场运维整理汇总经验。

JMeter 介绍

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

在PanWeiDB集中式的POC测试场景中,我们常用sysbench和benchmarksql做性能基准压测,但在jmeter的测试场景下,我们经常用其配置业务SQL来进行具体业务场景下的性能压测,所以前两者更多的适用于对数据库的基准性能测试(benchmarksql虽然也是在零售的业务场景下的进行的压测,但灵活性、局限性很有限),但jmeter真正的可以做到根据业务的需求自定义设定测试场景(需具备SQL开发编写能力)来进行性能压测。

Jmeter 安装

环境介绍

本次测试的Jmeter测试基于腾讯云上部署的PanWeiDB单实例数据库,硬件配置为8C/32G/100G的配置,服务器操作系统为CentOS 7.6,Windos系统为WIN10。所需要的软件包如下:

  • Yum依赖包
  • Jmerter安装包(Linux & Windows):apache-jmeter-5.5.zip
  • JDBC驱动:panweidb-jdbc-1.0.0
  • JAVA安装包(Linux):系统自备或手工安装不低于V1.8.0以上的版本;
  • JAVA安装包(windows):jdk-8u191-windows-x64-8.0.1910.12

YUM源依赖安装

在Linux系统上安装jmeter前需要将其必须的yum源依赖包进行安装,并且需要将java版本进行适配安装等。安装的Yum源依赖命令如下:

yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

在Linux上安装Java和Jmeter

步骤1 将jmeter包上传到 /opt 目录下

cd /opt

unzip apache-jmeter-5.5.zip

步骤2 查看已安装的Java版本

java -version

步骤3 同时配置Java和Jmeter环境变量

cat >> /etc/profile << EOF

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64

export JRE_HOME=$JAVA_HOME/jre

export JMETER_HOME=/opt/apache-jmeter-5.5

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JMETER_HOME/bin:$PATH

EOF

source /etc/profile

步骤4 确认jmeter安装成功

在Windows上安装Java和Jmeter

安装配置Java

步骤1 Java下载地址:Java Archive Downloads - Java SE 8u211 and later | Oracle 中国

步骤2 下载后自定义安装到Windows系统上即可,这里自行安装即可。

步骤3 配置java的环境变量

步骤4 新建JAVA_HOME变量路径

【变量名】JAVA_HOME

【变量值】 D:\Program Files\Java\jdk1.8.0_191 (即jdk的安装地址);

步骤5 新建CLASSPATH变量路径

【变量名】CLASSPATH

【变量值】.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar

这里需要特别注意,变量值的首尾不可以有空格,开头为英文原点。

步骤6 追加配置PATH环境变量

【变量名】PATH

【变量值】%JAVA_HOME%\bin

【变量值】%JAVA_HOME%\jre\bin

步骤7 通过win+r的快捷键再输入cmd,打开命令符窗口,输入java -version确认java安装配置是否成功;

安装配置Jmeter

步骤1 jmeter下载地址:Apache JMeter - Apache JMeter™

步骤2 将apache-jmeter-5.5.zip安装包解压后复制到自定义设置的安装路径上即可,比如我这里将该安装包放置在 D:\Program Files\apache-jmeter-5.5 路径上;

步骤3 配置jmeter的环境变量,按照2.4.1步骤中打开环境变量即可;

步骤4 新建JMETER_HOME变量路径

【变量名】JMETER_HOME

【变量值】D:\Program Files\apache-jmeter-5.5

步骤5 新建CLASSPATH变量路径

【变量名】CLASSPATH

【变量值】

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;

步骤6 启动jmeter客户端,验证jmeter安装成功,点击下图中的两个客户端均可启动jmeter图形化程序;

在Linux和Windows上配置JDBC驱动

适配于PanWeiDB的JDBC驱动需要将PanWeiDB的数据库安装包进行解压,从而得到能够适配于客户端的JDBC驱动包postgresql.jar。

这里我们只需要将 postgresql.jar 并放置到对应系统的的对应文件路径下即可,复制前如该路径下有 postgresql.jar 文件,请务必先删除,如下:

  • 在Linux系统上,将修改后的postgresql.jar驱动包复制到 /opt/apache-jmeter-5.5/lib/ext/ 路径下即可;
  • 在Windows系统上,将修改后的postgresql.jar驱动包复制到 D:\Program Files\apache-jmeter-5.5\lib 路径下即可;

以上,则完成了jmeter的安装部署,可以打开Jmeter客户端进行测试计划的配置工作了。

Jmeter 测试计划

Jmeter的功能非常强大,其配置项随之也非常之多,故而在研究其使用的过程中工作量也较大,所以这里我仅针对数据库层面的必要配置进行说明讲解,以确保能够在POC中完成数据库方面的业务测试操作。

图片2

jmeter的测试计划,在适配于GaussDB数据库方面必须要进行配置的选项一般至少有五个,分别为:Thread Group/线程组、JDBC Connection Configuration/JDBC连接配置、JDBC Request/JDBC请求、View Result Tree/查看结果树、Aggregate Report/聚合报告,配置建议按照该顺序依次进行,下面对各个配置项进行简单介绍。

Thread Group

线程组定义一个用户池,该用户池将针对您的服务器执行特定的测试用例。在线程组 GUI 中,您可以控制模拟的用户数(线程数)、启动时间(启动所有线程所需的时间)、执行测试的次数,以及测试的开始和停止时间(可选)。在这里务必需要设置的参数值为线程属性下的3个参数:线程数、Ramp-UP、循环次数。即测试计划将按照这里配置的参数来提供测试并发数量、时间和测试循环的次数等,其它参数值为选配。

图片3

JDBC Connection Configuration

JDBC连接配置为设置客户端与数据库连接的配置界面,数据库通过适配于该数据库的JDBC驱动来进行连接,在这个界面上务必要配置的选项如下图所示:

图片4

在这里需要特别注意的几点有:

  • Validation Query建议选择select 1,该选项适配于postgresql;
  • Database URL的连接语法为jdbc:postgresql://ip:port/数据库名字 ,这里不要参考官方手册进行配置;
  • JDBC Driver class建议设置为org.postgresql.Driver;
  • Username和Password均按照创建数据库时设置即可,但user需具备sysadmin权限,且需在数据库上设置访问权限,如下:

create user tpcc with sysadmin password ‘Gauss@123’;

create database tpccdb with owner tpcc;

gs_guc set -I all -N all -h "host tpccdb tpcc 10.252.95.191/32 sha256"

JDBC Request

该配置项为允许将JDBC所设置的请求发送到数据库上执行,使用前需要设置好JDBC连接配置项的各个参数。

图片5

【备注】这里需要特别注意的是Variable Name参数所自定义的名称需要与JDBC连接配置中相同的参数所设置的名称相同,否则在后面连接发送请求时会报错。

View Result Tree

“查看结果树”显示所有示例响应的树,允许您查看 任何样本的响应。除了显示响应之外,您还可以查看获取所花费的时间此响应和一些响应代码。

图片6

此页面所显示为jmeter客户端工具与数据库可正常连接,相关连接信息可分别在“取样器结果”、“请求”和“响应数据”中查看。

Aggregate Report

聚合报告会为每个不同名称的请求创建一个表行 测试。对于每个请求,它汇总响应信息并提供请求计数、最小值、最大值、 平均值、错误率、近似吞吐量(请求/秒)和千字节/秒吞吐量。 测试完成后,吞吐量是整个测试期间的实际吞吐量。

图片7

生成测试计划JMX文件

以上几个选项配置完成后,可通过“启动”来执行这个测试计划并生成该计划的jmx文件,将该jmx文件上传到Linux服务器上执行,可进行模拟业务性能压力测试。“启动”操作如下图:

图片8

执行后通过查看“查看结果树”界面来判断连接测试是否正常,如无问题待按照测试计划跑完后会生成对应的JMX文件。

Jmeter 性能压测

将上一步生成的JMX文件自定义修改名称如jmeter_test.jmx,上传到Linux服务器上(上传路径可自定义),此时可根据此上传的执行计划JMX文件进行具体的数据库性能压测了,压测命令如下:

cd /report

jmeter -n -t jmeter_test.jmx -l /report/jmeter_test.jtl -e -o /report/output

此时需要将整个output目录文件到下载到本地,打开文件夹后双击index.html文件,即可打开本次测试生成的相关报告内容,如下图: