sqllog和AWR报告,是常用的问题定位和性能分析手段,可以帮助DBA和开发快速定位问题。在数据库部署后,默认都是未开启的状态。
借助sysbench的OLTP读写混合测试,来了解开启后是否会对一般OLTP生产场景造成性能影响。
基于两台相同配置的国产化服务器,搭建一套实时主备集群,服务器配置如下:
CPU:2颗Hygon C86 7280 32-core Processor
操作系统:Kylin Linux Advanced Server V10 (Tercel)
CPU:128核
内存:376 GB
本地硬盘:7 TB
业务网络:10Gb以太网
数据库版本:dm8_20220928_x86_kylin10_64_ent_8.1.2.138_pack3.iso
集群状态正常:
SYSBENCH测试(oltp_read_write),分3个测试阶段:默认未开启,先开启sqllog,后开启AWR(手动生成快照)。
(1)sysbench编译安装(过程略,使用达梦DPI驱动)
(2)连接主库进行测试
(3)测试参数:初始化25张表,每张表25万行数据,读写操作,测试10分钟
(4)测试过程如下:
数据准备:创建测试表,并插入测试数据。
./sysbench oltp_read_write.lua --tables=20 --table-size=250000 --db-driver=dm --dm-db=192.168.111.145:11236 --dm-user=test --dm-password=test12345 --auto-inc=1 --threads=200 --time=600 --report-interval=10 prepare
执行测试:
./sysbench oltp_read_write.lua --tables=20 --table-size=250000 --db-driver=dm --dm-db=192.168.1345 --auto-inc=1 --threads=100 --time=600 --report-interval=5 run|tee /opt/20221209sysbench2.log
在测试过程中,指定时间开启sqllog:
本次测试sqllog.ini配置如下:
BUF_TOTAL_SIZE = 10240 #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE = 1024 #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT = 6 #SQLs Log buffer keeped count(1~100)
[SLOG_ALL]
FILE_PATH = /dmsqllog/PROD
PART_STOR = 0
SWITCH_MODE = 2
SWITCH_LIMIT = 128
ASYNC_FLUSH = 1
FILE_NUM = 5
ITEMS = 0
SQL_TRACE_MASK = 1
MIN_EXEC_TIME = 0
USER_MODE = 0
USERS =
检查日志文件生成:
在测试过程中,指定时间开启AWR:
注意:快照的表空间默认只有 10 GB,生产上开启,要做好快照管理。设置快照保留时间,清理快照环境,亦或是表空间扩增。
手动生成几次快照:
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
测试完成,清理数据:删除测试表。
./sysbench oltp_read_write.lua --tables=20 --table-size=250000 --db-driver=dm --dm-db=192.168.111.145:11236 --dm-user=test --dm-password=test12345 --auto-inc=1 --threads=100 --time=600 --report-interval=5 cleanup
主库CPU资源使用情况:
TPS/QPS:
性能影响曲线:
结论:
在此模拟场景下,开启sqllog和AWR后,QPS、TPS无明显下降,对于oltp_read_write场景未产生明显的性能影响。
文章
阅读量
获赞