ip OS cpu free redo
9.1.66.124
9.1.66.125 1050a 海光x86-128c 256G 40G*2
9.1.66.116
9.1.66.117 1050e 海光x86-128c 256G 40G*2
1.2. 磁盘参数
9.1.66.125
9.1.66.117 非镜像 part 1.5T
9.1.66.124
9.1.66.116 nvme镜像 lvm 1.5T
2.前提准备:
②Benchmarksql5、sysbench、FIO3.22测试软件
③根据规范部署单机
cd /data/dm8tpcc/dm8
cp -r /opt/dmdbms/bin ./
--初始化数据库
cd /data/dm8tpcc/init_dm8
./1initDB.sh
##优化dm.ini并重启
./DmService
3、dm.ini(需要优化的参数)
TASK_THREADS=16
IO_THR_GROUPS=8
MAX_OS_MEMORY=100
MEMORY_POOL=2000
MEMORY_N_POOLS=59
MEMORY_TARGET=31000
BUFFER=99000
MAX_BUFFER=99000
BUFFER_POOLS=101
RECYCLE= 10000
RECYCLE_POOLS=41
FAST_POOL_PAGES=99999
FAST_ROLL_PAGES=9999
ENABLE_FREQROOTS=1
MULTI_PAGE_GET_NUM=1
PRELOAD_SCAN_NUM=0
PRELOAD_EXTENT_NUM=0
MEMORY_MAGIC_CHECK=1
HJ_BUF_GLOBAL_SIZE=40000
HJ_BUF_SIZE=512
HAGR_BUF_GLOBAL_SIZE=10000
HAGR_BUF_SIZE=512
SORT_FLAG=0
SORT_BLK_SIZE=1
SORT_BUF_SIZE=2
SORT_BUF_GLOBAL_SIZE=5000
RLOG_POOL_SIZE=2048
CACHE_POOL_SIZE=2048
DICT_BUF_SIZE=50
VM_POOL_TARGET=16384
SESS_POOL_TARGET=16384
USE_PLN_POOL=1
ENABLE_MONITOR=1
TEMP_SIZE=1024
TEMP_SPACE_LIMIT=102400
MAX_SESSIONS=1000
MAX_SESSION_STATEMENT=20000
PK_WITH_CLUSTER= 0
ENABLE_ENCRYPT=0
OLAP_FLAG=2
VIEW_PULLUP_FLAG=1
OPTIMIZER_MODE=1
ADAPTIVE_NPLN_FLAG=0
PARALLEL_PURGE_FLAG=1
PARALLEL_POLICY=2
UNDO_EXTENT_NUM=16
ENABLE_INJECT_HINT=1
BTR_SPLIT_MODE=1
FAST_LOGIN=1
ENABLE_MONITOR_BP=0
此处 1initDB.sh中,有部分变量值需要注意
1.redo_size="10240",即redo默认为2个10G,可以支撑2~3分钟的高性能TPCC测试。
2.会自动调用当前目录下的dm.ini,来修改测试参数。
3.端口号在dm.ini中指定,默认是5236
curr=$(cd "$(dirname "$0")";pwd)
dm_home=$(cd "$curr/../dm8";pwd)
mkdir -p $curr/../../dmdata_tpcc
dm_data=$(cd "$curr/../../dmdata_tpcc";pwd)
echo "dm_home: "$dm_home/bin " dm_data: "$dm_data
redo_size="40960"
kill -9 $(ps -ef|grep ${dm_home}/bin |gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
sleep 10
chmod +x $curr/DmService $curr/alterini.py
rm -rf ${dm_data}
export LD_LIBRARY_PATH=$dm_home/bin
sed -i '/^DM_HOME/c DM_HOME="'${dm_home}'"' ${curr}/DmService
sed -i '/^INI_PATH/c INI_PATH='${dm_data}'/DAMENG/dm.ini' ${curr}/DmService
cd $dm_home/bin
./dminit path=${dm_data} page_size=32 extent_size=32 port_num=5236
$curr/DmService start
sleep 60
cp ${curr}/DmService ${dm_data}
./disql SYSDBA/SYSDBA@localhost:5236 << EOF
ALTER TABLESPACE "ROLL" RESIZE DATAFILE 'ROLL.DBF' TO 10000;
ALTER DATABASE RESIZE LOGFILE 'DAMENG01.log' TO ${redo_size};
ALTER DATABASE RESIZE LOGFILE 'DAMENG02.log' TO ${redo_size};
exit
EOF
#modfiy the manual parameters
sleep 1
$curr/DmService restart
sleep 1
$curr/DmService restar
2.1. 配置文件
vi props.dm
db=dameng
driver=dm.jdbc.driver.DmDriver
conn=jdbc:dm://ip:5236
user=BENCHMARKSQL
password=123456789
warehouses=100 ##仓库数,每个Warehouse的数据量大小约为76823.04KB
loadWorkers=128 ##用于在数据库中初始化数据的加载进程数量,默认为4 (建议填写CPU核数)
terminals=100 ##终端数即:并发客户端数量, 跟服务端最大work数对应,通常设置为CPU线程总数的2~6倍
//To run specified transactions per terminal- runMins must equal zero
//每个终端(terminal)运行的固定事务数量,当该参数为非0时,runMins参数必须等于零
runTxnsPerTerminal=0
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=10 ##测试时间
//Number of total transactions per minute
//每分钟总事务数
limitTxnsPerMin=0
//Set to true to run in 4.x compatible mode. Set to false to use the
//entire configured database evenly.
terminalWarehouseFixed=true
//The following five values must add up to 100
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
// Directory name to create for collecting detailed result data.
// Comment this out to suppress.
//resultDirectory=dameng_result_%tY-%tm-%td_%tH%tM%tS
//osCollectorScript=./misc/os_collector_linux.py
//osCollectorInterval=1
//osCollectorSSHAddr=user@dbhost
//osCollectorDevices=net_eth0 blk_sda
开启归档
mkdir /data1/dmdata_tpcc/dmarch
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data1/dmdata_tpcc/dmarch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
2.2. 数据装载
• 依次执行bms5_create_user.sql、bms5_table_partition_100.sql、bms5_index.sql添加用户索引与数据
cd /data/dm8tpcc/01tpcc/01_tpcc/tpcc/benchmarksql5/run
./runLoader.sh props.dm
进行多轮测试,重启库后再压测
2.3. 性能测试
./runBenchmark.sh props.dm
3.Sysbench性能测试
3.1准备工作
1)检查环境(需执行以下命令不报错)
./autogen.sh
2)x86平台安装
./configure --without-mysql --with-dm
3)编译
make && make install
4)初始化数据库
/opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p SYSBENCH -dm_ini /data1/dmdata_sysbench/DAMENG/dm.ini
5)初始化数据(使用3.4优化脚本优化)
create user "SYSBENCH" identified by "SYSBENCH" password_policy 0
default tablespace "SYSBENCH"
default index tablespace "SYSBENCH";
grant "PUBLIC","SOI","VTI" to "SYSBENCH";
3.2测试
数据准备
只读/读写混合
./sysbench oltp_read_write.lua --db-driver=dm --dm-db=9.1.66.117:5237 --dm-user=SYSBENCH --dm-password=SYSBENCH --table_size=10000000 --tables=20 --events=0 --time=600 --threads=128 --warmup-time=60 --report-interval=5 run
清理数据
4.FIO性能测试
4.1 安装fio V3.22
yum install -y fio
4.2测试
fio -filename=/data1/fio20230719-4 -direct=1 -iodepth 1-thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=50G -numjobs=128 -runtime=1000 -group_reporting -name=mytest20230719-4
5.1 TPCC测试结果:
•默认系统配置测试结果如下,压测参数为:500仓100并发10分钟
6、总结
版本 是否镜像 性能
第一组 第二组 第三组 第四组
1050e 是
否 1.6%↑ 2.9%↑ 4.5%↑ 0.9%↑
1050a 是
否 30%↑ 109%↑ 126%↑ 109%↑
版本 性能
第一组 第二组 第三组 第四组
镜像 1050e 43%↑ 116%↑ 120%↑ 116%↑
1050a
非镜像 1050e 12%↑ 6%↑ 2.3%↑ 4.4%↑
1050a
同版本镜像和非镜像对比:非镜像相对好些
镜像和非镜像系统版本对比:1050e更好
5.2 SYSBENCH测试结果:
20张表,每张表1千万数据量,时间600s,线程128
1050a上无法安装sysbench
5.3总结
版本 是否镜像 只读-性能
第一组 第二组 第三组
1050e 是 3.9%↑
否 29%↑ 2%↑
版本 是否镜像 混合读写-性能
第一组 第二组 第三组
1050e 是
否 24%↑ 17%↑ 25%↑
1050e镜像和非镜像对比:只读下非镜像相对好些,混合读非镜像好
5.4 FIO测试结果:
IOPS是每秒执行的平均I/O。BW是平均带宽速率,(执行的总I/O / 线程运行时间ms)文件50G,执行时间1000s,线程128,混合读写70%读30%写.
同版本镜像和非镜像对比:镜像更好
镜像和非镜像系统版本对比:1050e更好
文章
阅读量
获赞