PolarDB MySQL版支持高性能参数模板功能。本章节详细介绍PolarDB MySQL版支持的高性能参数模板中的参数设置情况,以及如何开启高性能参数模板和开启高性能模板前后的性能提升情况。
高性能参数模板简介
由于PolarDB的参数比较多,针对特定场景进行参数适配的学习成本比较高。为了满足客户对数据库性能的需求,PolarDB推出了高性能参数模板,您可以将高性能参数模板应用于目标集群,或者基于该模板进一步配置集群参数。在通常情况下,高性能参数模板能够提升数据库的性能。
在PolarDB MySQL版支持的高性能参数模板中,设置或开启的功能如下:
参数 | 参数说明 | 高性能参数模板中取值 | 参数默认值 |
innodb_flush_log_at_trx_commit | 设置为0后,每秒写入并刷新一次,从而提升数据库的持久性,提升性能。 | 0 | 1 |
query_cache_type | 是否开启Fast Query Cache功能。开启后,可有效提高数据库的查询性能。 | 1 | 0 |
参数 | 参数说明 | 高性能参数模板中取值 | 参数默认值 |
innodb_flush_log_at_trx_commit | 设置为0后,每秒写入并刷新一次,从而提升数据库的持久性,提升性能。 | 0 | 1 |
loose_innodb_primary_purge_max_id_lag | 设置为18446744073709551104时,将取消RO节点上的读视图对RW节点的限制。 | 18446744073709551104 | 无 |
参数 | 参数说明 | 高性能参数模板中取值 | 参数默认值 |
innodb_flush_log_at_trx_commit | 设置为0后,每秒写入并刷新一次,从而提升数据库的持久性,提升性能。 | 0 | 1 |
loose_innodb_lock_sys_rec_partition | 事务锁的分片数量。在InnoDB内,可采用分片的方式,对事务锁(包括行锁和表锁)进行管理,从而减少事务锁管理所引入的竞争开销。 | 64 | 1 |
loose_query_cache_type | 是否开启Fast Query Cache功能。开启后,可有效提高数据库的查询性能。 | ON | OFF |
使用限制
PolarDB标准版和集群版都支持高性能参数模板。集群版本需为如下版本之一:
PolarDB MySQL版 5.6版本且Revision version为5.6.1.0.30或以上。
PolarDB MySQL版 5.7版本且Revision version为5.7.1.0.11或以上。
PolarDB MySQL版 8.0.1版本且Revision version为8.0.1.1.21或以上。
PolarDB MySQL版 8.0.2版本且Revision version为8.0.2.2.6.1或以上。
您可以通过查询版本号确认集群版本。
适用场景与潜在风险
在通常情况下,高性能参数模板能够提升数据库的性能。但应用高性能模板后,由于该模板以追求性能为目标,会导致数据库使用过程中存在一定风险:
数据持久性会减弱。由于innodb_flush_log_at_trx_commit参数被置为
0
,如果数据库crash了,1秒内没有被刷盘的数据可能会丢失。主备复制延迟可能会增加。由于innodb_flush_log_at_trx_commit参数被置为
0
,主备节点的物理复制可能会被延迟到1秒左右。
如果要规避上述风险,您可以重设innodb_flush_log_at_trx_commit为1
。
因此,若您的业务接受损失部分数据库稳定性作为代价,追求更高的数据库性能,则您可以为您的集群应用该高性能参数模板。
在应用高性能参数模板前,建议您先提交工单向阿里云技术团队咨询确认。
应用高性能参数模板
您可以通过以下两种方式为您的集群应用高性能参数模板。
在为集群应用高性能参数模板后,数据库需要重新启动。重启期间,您的服务会有闪断。因此建议您在业务低峰期操作,并确保应用程序具有重连机制。
方式一:
登录PolarDB控制台。
在控制台左上角,选择集群所在地域。
在左侧导航栏中,单击参数模板。
在参数模板页面,单击系统参数模板。
选择名称为mysql_innodb_5.6_高性能参数模板、mysql_innodb_5.7_高性能参数模板或mysql_innodb_8.0_高性能参数模板的模板,单击操作列的应用到实例。
在应用到实例页面中,选择要应用高性能参数的集群,并单击>将其添加至已选实例列表中。
选择集群后,您可以在参数对比区域查看集群参数的当前参数值与高性能参数模板中参数值的差异。
单击确定。
说明为集群应用高性能参数模板后,数据库需要重新启动。
方式二:
登录PolarDB控制台。
在控制台左上角,选择集群所在地域。
找到目标集群,单击集群ID。
在左侧导航栏中,选择
。单击应用模板。
在应用模板页面的模板名称下拉列表中选择对应的高性能模板。
选择模板后,您可以在参数对比区域查看集群参数的当前参数值与高性能参数模板中参数值的差异。
单击确定。
说明为集群应用高性能参数模板后,数据库需要重新启动。
性能对比
本节以PolarDB MySQL版8.0版本支持的高性能参数模板为例,在Sysbench和TPC-C场景下,分别测试默认参数和应用高性能参数模板后的集群性能。
Sysbench是一个跨平台且支持多线程的模块化基准测试工具,用于评估系统在运行高负载的数据库时相关核心参数的性能表现。
TPC-C是业界常用的一套Benchmark,由TPC委员会制定发布,用于评测数据库的联机交易处理(偏向OLTP)能力。
本文中TPC-C的实现基于TPC-C的基准测试,并不能与已发布的TPC-C基准测试结果相比较,本文中的测试并不符合TPC-C基准测试的所有要求。
测试环境:
PolarDB MySQL版集群:
集群规格:88c720g。
内核版本:8.0.1.1.21及以上。
压力机环境:
压力机与数据库ping延迟为1ms左右。
压力机的计算资源和网络资源充足。
Sysbench测试过程:
测试集:read_write、write_only。
起始数据量:25张表 × 25000行数据。
性能指标:分别测试在1、8、16、32、64、128、256、512、1024并发数下的QPS(Queries per Second),即数据库每秒执行的SQL数(含INSERT、SELECT、UPDATE、DELETE等)。
TPC-C测试过程:
测试工具:TPCC-MySQL。
起始数据量:1000 warehouse。
性能指标:分别测试在1、8、16、32、64、128、256、512、1024并发数下的tpmC(Transactions per Minute),其可以衡量数据库最大有效吞吐量(MQTh,Max Qualified Throughput)。
测试结果:
Sysbench测试:
TPC-C测试:
结论:从以上Sysbench和TPC-C的测试结果可以看出,应用了高性能参数模板后,相比默认参数值,集群的性能随着并发数的增加,有显著提升。在达到256并发数后,高性能参数模板的性能是默认参数模板的2倍甚至更高。