注册
物理机统信uos系统不同版本性能对比
专栏/技术分享/ 文章详情 /

物理机统信uos系统不同版本性能对比

羽书飞影 2023/09/11 2919 1 0
摘要
  1. 环境配置
    •本次测试针对uos-V20系统的1050a(对应龙蜥)与1050e(对应欧拉)版本对于使用达梦哪个更优进行总结
    1.1. 系统参数
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测试软件
③根据规范部署单机

  1. 配置TPCC
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%写.
企业微信截图_16944113992005.png
 同版本镜像和非镜像对比:镜像更好
 镜像和非镜像系统版本对比:1050e更好

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服