一、项目概述
测试目的:针对已有数据库(pg、oracle、 mysql),对这些数据库在相同级别数据量、单机环境下测试各自的性能表现。
二、测试策略
1、 相关测试工具
TPC-H,用于生成数据库一定量的测试数据
Jmeter,模拟若干客户端即虚拟用户,并发执行相应的 SQL 语句
Nmon,用来监控数据库资源的使用情况
2、 相关指标使用情况
2.1 事务响应时间
2.2 每秒处理事务数(tps)
2.3 支持最大并发数
2.4 系统资源使用情况:内存占用率分别低于 cpu70%,80%,以及 IO、带宽使用情况
3、 相关人员
Db 人员:负责数据库相关调优工作,协助测试人员导入测试数据
运维人员:负责监控软件的安装,协助测试人员监控相关指标
测试人员:负责方案制定、测试数据准备、测试脚本准备、测试执行、测试结果分析、测试报告编写等工作
4、 测试场景
场景一:10GB 数据量
用户数 描述 事务请求响应时间 资源使用情况 TPS
单用户 分别执行单个查询
多用户 500 混合执行 N 条查询 +2 条 dml
1000 混合执行 N 条查询 +2 条 dml
场景二:30G
场景三:100G
场景四:300G
场景五:1000G
三、测试准备
1、测试环境准备:
1.1 用于模拟多线程请求的客户机
1.2 PG、Orcale、Mysql 数据库搭建
1.3 Nmon 监控环境搭建
2、测试数据准备:
生成数据:
下载 TPC-H 压缩包,解压后再 dbgen 目录下找到 tpch.sln 文件,用 microsoft visual studio 打开,自动转换解决方案
生成解决方案,生成成功后会在 dbgen/Debug 下生成一个 dbgen.exe
复制到 dbgen 目录下
然后用命令行输入以下命令
dbgen.exe -vf -s 10 (生成 10G 的数据)
成功后会在 dbgen 目录下生成 8 个.tbl 文件,这个就是生成好的数据文件
创建数据表:
8 张表(customer、lineitem、nation、orders、part、partsupp、region、supplier)
表结构:
-- Sccsid: @(#)dss.ddl 2.1.8.1
CREATE TABLE NATION ( N_NATIONKEY INTEGER NOT NULL,
N_NAME CHAR(25) NOT NULL,
N_REGIONKEY INTEGER NOT NULL,
N_COMMENT VARCHAR(152));
CREATE TABLE REGION ( R_REGIONKEY INTEGER NOT NULL,
R_NAME CHAR(25) NOT NULL,
R_COMMENT VARCHAR(152));
CREATE TABLE PART ( P_PARTKEY INTEGER NOT NULL,
P_NAME VARCHAR(55) NOT NULL,
P_MFGR CHAR(25) NOT NULL,
P_BRAND CHAR(10) NOT NULL,
P_TYPE VAR