本文记录使用 Apache JMeter 对两节点 DMDSC 数据共享集群进行 JDBC 连接测试和负载测试的过程。
| 节点 | 实例名称 | IP 地址 | 端口 | 角色 |
|---|---|---|---|---|
| 节点 0 | DSC01 | 192.168.52.131 | 6636 | Control Node |
| 节点 1 | DSC02 | 192.168.52.135 | 6637 | Normal Node |
JMeter 部署在 Windows 本地机器,通过网络访问两台 DMDSC 虚拟机。
| 项目 | 配置 |
|---|---|
| Java | JDK 21 |
| JMeter | 5.6.3,D:\jmeter\apache-jmeter-5.6.3 |
| DM JDBC 驱动(Linux) | /home/dmdba/dmdbms/drivers/jdbc/DmJdbcDriver8.jar |
| 服务名文件 | C:\Windows\System32\dm_svc.conf |
从 Apache 官网 下载 ZIP 包,可以直接解压使用,解压到英文路径即可,我的解压路径是在"D:\jmeter"
将jmeter的路径加入到windows的环境变量中
由于jmeter需要依赖Java环境,所以环境变量里面如果缺少jajva环境的一定要添加上,我这里就不再配置。
从 DM8 安装目录取得驱动:
ls /home/dmdba/dmdbms/drivers/jdbc
将驱动复制到我们安装的JMeter 的 lib 目录:
注意: 新增或替换驱动后必须完全退出并重启 JMeter。
在 Windows 本机中找到或者创建一个配置文件 C:\Windows\System32\dm_svc.conf
用记事本打开后加入以下配置信息:
TIME_ZONE=(480)
LANGUAGE=(CN)
DSC=(192.168.52.131:6636,192.168.52.135:6637)
[DSC]
CLUSTER=(DSC)
SWITCH_TIMES=(60)
SWITCH_INTERVAL=(1000)
EP_SELECTOR=(0)
AUTO_RECONNECT=(1)
CHECK_FREQ=(5000)
同样的,我们的虚拟机中的配置文件"/etc/dm_svc.conf"也需要更改相同服务名(在主节点更改即可,这里就是131机器):
TIME_ZONE=(480)
LANGUAGE=(CN)
DSC=(192.168.52.131:6636,192.168.52.135:6637)
[DSC]
CLUSTER=(DSC)
SWITCH_TIMES=(60)
SWITCH_INTERVAL=(1000)
EP_SELECTOR=(0)
AUTO_RECONNECT=(1)
CHECK_FREQ=(5000)
| 配置项 | 说明 |
|---|---|
EP_SELECTOR=(0) |
依次选择不同节点,使连接分布到各节点 |
AUTO_RECONNECT=(1) |
连接异常时自动尝试其他节点 |
SWITCH_TIMES |
节点异常时尝试切换的次数 |
SWITCH_INTERVAL |
切换等待间隔(毫秒) |
在windows上ping一下我们的DSC集群的两个节点,看是否可以通信:
ping 192.168.52.131
ping 192.168.52.135
以 SYSDBA 连接任一节点:
CREATE USER JMETER_TEST IDENTIFIED BY "Jmeter_123";
GRANT RESOURCE TO JMETER_TEST;
创建测试表:
CREATE TABLE DSC_JMETER_TEST (
ID BIGINT IDENTITY(1, 1) NOT NULL,
BIZ_ID VARCHAR(64) NOT NULL,
THREAD_NAME VARCHAR(128),
PAYLOAD VARCHAR(1000),
CREATE_TIME TIMESTAMP DEFAULT SYSDATE,
INSTANCE_NAME VARCHAR(128),
CONSTRAINT PK_DSC_JMETER_TEST PRIMARY KEY (ID),
CONSTRAINT UK_DSC_JMETER_TEST_BIZ UNIQUE (BIZ_ID)
);
进入jmeter的bin目录中,以管理员身份启动jmeter.bat文件
正常打开如图:
语言可以在options那里改为简体中文。
右键测试计划 → 添加 → 配置元件 → JDBC Connection Configuration:
添加对应的名称,URL等,连接数据库:
| 字段 | 值 |
|---|---|
| Variable Name for created pool | dm_pool |
| Database URL | jdbc:dm://DSC |
| JDBC Driver class | dm.jdbc.driver.DmDriver |
| Username | JMETER_TEST |
| Password | Jmeter_123 |
关键: Database URL 使用服务名
jdbc:dm://DSC,不要写单节点 IP,否则无法验证集群切换能力。
右键添加 → 线程→ 线程组。
在线程组中添加JDBC Request
在Variable Name of Pool declared in JDBC Connection Configuration一列输入刚才自定义的连接池名字:dm_pool
使用查询语句时Query Type 类型更改为Select Statement,下面编辑窗口中编辑对应的SQL语句
节点分布查询:
| 字段 | 值 |
|---|---|
| Variable Name of Pool | dm_pool |
| Query Type | Select Statement |
调试阶段可添加"查看结果树"和"聚合报告"。(也可以加入其他监听器,使测试结果可视化)
先用 1 线程、1 次循环验证驱动加载、服务名解析和 SQL 执行是否正常。
操作正常后就可以进行自己的测试计划了。
文章
阅读量
获赞
