- 收藏
- 加入书签
基于国产自主可控处理器平台上的MariaDB性能优化研究
摘要:近年来,越来越强调基于国产自主可控处理器平台上的生态研究。随着数据信息化的发展,数据库已成为一个必不可少的生态软件,对其进行研究意义非凡。鉴于MariaDB是完全开源、大存储且完全兼容Mysql等优势,其非常适用于国产平台,本文主要是对国产自主可控处理器平台上的MariaDB进行性能测试和优化。采用TPC-C基准测试方法对Mariadb进行测试,并采用perf工具和CPU监控手段对Mariadb数据库进行性能优化。
关键词:国产自主可控处理器;MariaDB 数据库;TPC-C基准测试;性能优化
1.概述
国产自主可控处理器是国家的重要战略资源,关系着国家众多领域的自主可控,申威处理器作为国内重要的一个完全自主可控的处理器,加快其技术和平台上的生态发展尤为重要。随着数据信息化的发展,当代世界已成为一个数据世界,数据处理显然成了一个必不可少的环节,因而对国产自主可控处理器平台上的数据库研究意义重大。鉴于Mariadb[1]完全开源、低成本、大存储以及完全兼容Mysql等优势,本文对其进行了研究,在申威处理器平台上对Mariadb进行了性能测试和优化。
2.Mariadb性能测试
2.1测试方法介绍
对于Mariadb数据库,我们采用TPC-C基准测试[2],测试工具为Benchmark SQL 5.0。TPC-C是在国际上被广泛采用的一种衡量计算机系统的事务在线处理能力的测试方法,是旨在衡量联机事务处理(OLTP)系统性能与可伸缩性的行业标准基准测试项目。这种基准测试项目将对包括查询、更新及队列式小批量事务在内的广泛数据库功能进行测试。
使用TPC-C进行测试的优点是该方法为国际通用测试方法,各个主流厂商都采用此方法来测试系统性能等指标,测试结果具有参考性和可对比性。其次,TPC-C不是给出基准程序的代码,而是只给出基准程序的标准规范,任何厂家或其他测试者都可以根据规范,最优地构造出自己的系统。
2.2运行环境及配置
(1)运行环境
本文所测的Mariadb数据库版本为10.3.22,测试工具为BenchmarkSQL-5.0,其中服务端运行环境为统信UOS操作系统,网速1000Mb/s,内存256G,申威处理器(64核,2.4GHz),硬盘1t,依赖的软件为Gcc version:8.3.0,Cmake version:3.13.4;客户端运行环境为统信UOS操作系统,网速1000Mb/s,内存256G,申威处理器(64核,2.4GHz),硬盘1t,依赖的软件为Java version:1.8.0,ant version:1.10.5。
(2)BenchmarkSQL文件配置
需要对benchmarksql配置文件props.mysql进行设置,进而才能对mariadb数据库进行测试,配置信息包含数据库具体信息,测试参数信息(warehouses、loadworkers、terminals等),配置好信息后就可以通过./runDatabaseBuild.sh props.mysql命令来测试数据库建立,./runBenchmark.sh props.mysql命令获得性能值。
2.3性能测试及监控
图1是mariadb优化前后的性能测试对比图,本文将terminal值设为100,loadworkers值设为64,通过设置不同的warehouse参数值来进行多轮测试并取平均值作为最终结果,对mariadb数据库的TPC-C基准测试结果值如下图1所示,其中相对tpmc值的算式为:
其中N为正整数,大小无限制;tpmc值[3]为吞吐率,是TPC-C基准测试的指标,tpm是transactions per minute的简称,C指TPC-C中的C基准程序,它的定义是每分钟内系统处理的新订单个数。
由测试结果可知,mariadb在国产处理器平台上的tpmc值并不高,相比于商业数据库[4]的tpmc值相差较大;同时我们在对mariadb数据库进行测试的时候,也对CPU进行了监控,发现CPU使用率并不高。由此可见,mariadb数据库在申威处理器平台上的性能需要优化。
3.Mariadb性能优化分析与测试
我们通过在申威平台上对mariadb进行TPC-C基准测试时,对CPU进行监控,根据监控结果可知,CPU使用率不高,比较空闲,其中的wa占比比较高,说明IO等待较长,可判定性能瓶颈出现在IO上。
对IO相关参数进行调整设置,将innodb_io_capacity_max 从原来的200设置成了8000,innodb_io_capacity从原来的200设置成了8000,innodb_buffer_pool_size从原来的128MB设置成了64G,再对Mariadb进行TPC-C基准测试,在同等情况下,tpmc值较优化前tpmc值提升了7倍多。
为了更进一步提高性能,利用perf工具来锁定高消耗函数,即热点函数。我们用Perf工具在对mariadb数据库各函数性能进行跟踪分析时,发现ut_delay函数所占比率比较高,为12.56%,该函数是一个公共函数,主要作用是当mariadb中轻量级锁、读写锁做自旋时,产生一个pause暂时让出CPU。由此可见,热点函数发生在自旋锁这块。
对mariadb数据库中自旋锁相关的参数进行调整设置,将innodb_spin_wait_delay 从原来的4设置成2,innodb_sync_array_size从原来的1设置成100,再对Mariadb进行TPC-C基准测试,在同等情况下,tpmc值较优化前tpmc值提升了10倍多。
图1是优化后对mariadb数据库在不同的terminal参数值设置下的测试结果图。从图中可以看出在同样的条件下,经优化后的数据库性能明显比优化前的数据库性能好,提升了7-12倍左右。
4.结束语
本文对国产自主可控处理器平台上的mariadb数据库进行了测试和优化,采用TPC-C基准测试方法对数据库进行测试,用perf工具和CPU监控手段来优化数据库性能,优化后mariadb数据库性能得到提升,能够满足绝大部分的应用需求。
参考文献
[1]张金鹏,张成远,季锡强.MariaDB原理与实现[M].北京:人民邮电出版社,2015.
[2]沈明星.TPC-C与数据库性能优化[D].浙江:浙江大学,2007.
[3]祁华鹏.KingbaseES V008R006 BenchmarkSQL性能测试报告[R].北京人大金仓信息技术股份有限公司,2021.
作者简介
谷洪峰,无锡先进技术研究院行业应用研发部主任,硕士。
陈盛龙,无锡先进技术研究院行业应用研发部高级工程师,硕士。
通讯作者
陆娴,无锡先进技术研究院行业应用研发部中级工程师,硕士。


京公网安备 11011302003690号