DM8_BENCHMARKSQL TPCC测试文档
一、上传软件
二、测试步骤 该虚拟机已经初始化过库,启动服务
2.1创建9张表 查看prop.dm的文件内容
注:warehouses=200表示待测的仓库数为200个,terminals=200表示终端数为200个, runMins=10表示测试时间为10分钟 sqlTableCreates_DM脚本内容
注1:DECIMAL类型都改为FLOAT类型 注2:去掉外键 注3:主键强制聚集 注4:without counter表示关闭计数器 注5:Count时会把所有数据读入内存 注6:benchmarksql.warehouse和benchmarksql.district的storage(fillfactor 2,without counter); 注7:benchmarksql.history 改为list表,且storage(branch(32,32),without counter) 注8:其它表storage(without counter)
2.2装载数据 –执行如下命令: ./runLoader.sh props.dm numWarehouses 50
注:50表示要装载50个仓库
2.3创建索引 –执行如下命令:
[root@localhost run]# ./runSQL.sh props.dm sqlIndexCreates_DM create index ndx_customer_name on benchmarksql.customer (c_w_id, c_d_id, c_last, c_first); -- sqlIndexCreates_DM脚本内存如下: create index ndx_customer_name on benchmarksql.customer (c_w_id, c_d_id, c_last, c_first);注:针对目前建表语句,达梦只需要建这一个索引。
2.4修改dm.ini 手动修改dm.ini的下列参数:
MAX_OS_MEMORY = 100 MEMORY_POOL = 1000 BUFFER = 1024 BUFFER_POOLS = 50 FAST_POOL_PAGES = 9000 FAST_ROLL_PAGES = 8000 RECYCLE = 8 MULTI_PAGE_GET_NUM = 1 MAX_BUFFER = 100000 VM_MEM_HEAP = 0 WORKER_THREADS = 24 WORK_THRD_STACK_SIZE = 100 CKPT_RLOG_SIZE = 0 CKPT_INTERVAL = 3600 CKPT_DIRTY_PAGES = 0 FORCE_FLUSH_PAGES = 0 IO_THR_GROUPS =12 CHECK_DB_IS_ACTIVE = 0 BDTA_SIZE = 20 FAST_COMMIT = 99 ENABLE_SPACELIMIT_CHECK = 0 RLOG_PARALLEL_ENABLE = 1 RLOG_RESERVE_SIZE = 0 SESS_CHECK_INTERVAL = 30 FAST_RELEASE_SLOCK = 0 NOWAIT_WHEN_UNIQUE_CONFLICT = 1 UNDO_EXTENT_NUM = 32 UNDO_RETENTION = 1 MAX_SESSIONS = 1000 SUBQ_EXP_CVT_FLAG = 0 PURGE_DEL_OPT = 1 ENABLE_FREQROOTS = 2 CACHE_POOL_SIZE = 100 DICT_BUF_SIZE = 20 ENABLE_MONITOR = 0(虚拟机内存不够,一些参数改为较小的数值或没有更改)
注1:BUFFER估算公式为:单库不超过100M,BUFFER>= 100M * 库个数。内存允许的 情况下,可以放大。 注2:WORKER_THREADS估算公式为:WORKER_THREADS = 系统逻辑cpu个数 注3:IO_THR_GROUPS估算公式为:IO_THR_GROUPS =系统逻辑cpu个数 / 2 注4:BDTA_SIZE=20和UNDO_RETENTION<=3必须同时设置 注5:N_PLN_POOLS=17 老版本有用,新版本废弃。
2.5重启服务
2.6扩库以及日志文件、优化表
alter tablespace "ROLL" resize datafile 'ROLL.DBF' to 50; alter database resize logfile 'DAMENG101.log' to 1000; alter database resize logfile 'DAMENG102.log' to 1000; SP_SET_TAB_FAST_POOL_FLAG('BENCHMARKSQL', 'ITEM', 1); SP_SET_TAB_FAST_POOL_FLAG('BENCHMARKSQL', 'WAREHOUSE', 1); SP_SET_TAB_FAST_POOL_FLAG('BENCHMARKSQL', 'DISTRICT', 1);注:扩日志耗时稍长,一般十分钟测试,2个5G的日志即可。为了多跑几次,可以适当放大。
2.7预加载数据到内存
SQL> select count(*) from "BENCHMARKSQL"."CUSTOMER" union all 2 select count(*) from "BENCHMARKSQL"."DISTRICT" union all 3 select count(*) from "BENCHMARKSQL"."ITEM" union all 4 select count(*) from "BENCHMARKSQL"."NEW_ORDER" union all 5 select count(*) from "BENCHMARKSQL"."OORDER" union all 6 select count(*) from "BENCHMARKSQL"."ORDER_LINE" union all 7 select count(*) from "BENCHMARKSQL"."STOCK" union all 8 select count(*) from "BENCHMARKSQL"."WAREHOUSE" union all 9 select count(*) from "BENCHMARKSQL"."HISTORY" union all 10 select count("C_PAYMENT_CNT") from "BENCHMARKSQL"."CUSTOMER";注:内存不足情况下,优先舍弃history(去掉上面语句中对history表的统计)。
2.8执行测试 –执行命令如下: ./runBenchmark.sh props.dm
./runBenchmark.sh props.dm>/dev/null 2>&1 (效果更好些,测试结果可查看/emc_ssd/benchmarksql-4.1.0/benchmarksql-4.1.0/run/log /benchmarksql.log) 注:log4j.xml日志级别:priority value=“trace”(默认值)
