seekdb TPC-H 测试
本文介绍如何使用 TPC-H 工具对 seekdb 进行性能测试。
什么是 TPC-H
TPC-H(商业智能计算测试)是美国交易处理效能委员会(TPC,Transaction Processing Performance Council)组织制定的用来模拟决策支持类应用的一个测试集。目前,学术界和工业界普遍采用 TPC-H 来评价决策支持技术方面应用的性能。这种商业测试可以全方位评测系统的整体商业计算综合能力,对厂商的要求更高,同时也具有普遍的商业实用意义,目前在银行信贷分析和信用卡分析、电信运营分析、税收分析、烟草行业决策分析中都有广泛的应用。
TPC-H 基准测试由 TPC-D(由 TPC 于 1994 年制定的标准,用于决策支持系统方面的测试基准)发展而来的。TPC-H 用 3NF 实现了一个数据仓库,共包含 8 个基本关系,其主要评价指标是各个查询的响应时间,即从提交查询到结果返回所需时间。TPC-H 基准测试的度量单位是每小时执行的查询数(QphH@size),其中 H 表示每小时系统执行复杂查询的平均次数,size 表示数据库规模的大小,它能够反映出系统在处理查询时的能力。TPC-H 是根据真实的生产运行环境来建模的,这使得它可以评估一些其他测试所不能评估的关键性能参数。总而言之,TPC 组织颁布的TPC-H 标准满足了数据仓库领域的测试需求,并且促使各个厂商以及研究机构将该项技术推向极限。
环境准备
测试前请按照如下要求进行测试环境准备:
-
JDK:建议使用 1.8u131 及以上版本。
-
make:执行
yum install make命令安装。 -
GCC:执行
yum install gcc命令安装。 -
mysql-devel:执行
yum install mysql-devel命令安装。 -
Python 连接数据库的驱动:执行
sudo yum install MySQL-python命令安装。 -
prettytable:执行
pip install prettytable命令安装。 -
JDBC:建议使用
mysql-connector-java-5.1.47版本。 -
TPC-H Tool:点击 下载地址 获取。
-
seekdb:使用服务器模式 seekdb,详细部署操作请参考 通过 yum install 部署 seekdb。
-
部署的 seekdb 所对应的日志盘、clog 盘、data 盘分三块盘,性能级别 PL1,即在启动 seekdb 时,需在
/etc/oceanbase/seekdb.cnf下设置以下参数:port=2881
base-dir=/data/1/seekdb
data-dir=/data/2/seekdb
redo-dir=/data/3/seekdb
测试方案
-
本次测试需使用到 2 台机器,TPC-H 部署在一台机器上。seekdb 部署在另一台机器上,seekdb 的规格为 4C8G,其日志盘、clog 盘、data 盘分三块盘,性能级别 PL1。
-
测试数据量:10G。
使用 TPC-H 工具手动执行 TPC-H 测试
步骤一:获取 seekdb 连接串
mysql -hxx.xx.xx.xx -P2881 -uroot -p**** -A
步骤二:进行环境调优
开始测试前,先要进行 seekdb 调优。请登录 seekdb 并执行以下语句配置相关参数。
ALTER SYSTEM flush plan cache GLOBAL;
ALTER system SET enable_sql_audit=false;
select sleep(5);
ALTER system SET enable_perf_event=false;
ALTER system SET syslog_level='PERF';
alter system set enable_record_trace_log=false;
alter system set data_storage_warning_tolerance_time = '300s';
alter system set _data_storage_io_timeout = '600s';
alter system set trace_log_slow_query_watermark = '7d';
alter system set large_query_threshold='0ms';
alter system set max_syslog_file_count = 300;
alter system set spill_compression_codec = 'lz4';
SET global NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
SET global NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS.FF';
SET global NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS.FF TZR TZD';
set global ob_query_timeout=10800000000;
set global ob_trx_timeout=10000000000;
set global ob_sql_work_area_percentage=50;
alter system set default_table_store_format = 'column' ;
alter system set ob_enable_batched_multi_statement='true';
alter system set _io_read_batch_size = '128k';
alter system set _io_read_redundant_limit_percentage = 50;
SET global parallel_degree_policy = AUTO;
set global parallel_servers_target=10000;
set global collation_connection = utf8mb4_bin;
set global collation_database = utf8mb4_bin;
set global collation_server = utf8mb4_bin;
set global autocommit=1;
alter system set _nested_loop_join_enabled = false;
alter system set ob_enable_batched_multi_statement='true';
步骤三:安装 TPC-H Tool
-
下载 TPC-H Tool。详细信息请参考 TPC-H Tool 下载页面。
-
下载完成后解压文件,进入 TPC-H 解压后的目录。
unzip 7e965ead-8844-4efa-a275-34e35f8ab89b-tpc-h-tool.zip
cd TPC-H\ V3.0.1/ -
复制
makefile.suite。cd dbgen/
cp makefile.suite Makefile -
修改
Makefile文件中的CC、DATABASE、MACHINE