测试工具:
Sysbench
测试对象:
阿里云DRDS(8核16G)和PolarDB(2核4G)
测试方法:
Sysbench脚本压力测试。
数据规模为10个表,每个表1000万行数据。
数据:
256线程1小时压测
|
DRDS |
PolarDB |
||
CPU |
1c |
12c |
1c-公网 |
12c-公网 |
时长(秒) |
3600 |
3600 |
3600 |
3600 |
读次数 |
17697400 |
17520090 |
4996670 |
5362448 |
写次数 |
5056400 |
5005740 |
1427620 |
1532128 |
其他次数 |
2528200 |
2502870 |
713810 |
766064 |
总次数 |
25282000 |
25028700 |
7138100 |
7660640 |
事务数 |
1264100 |
1251435 |
356905 |
383032 |
TPS |
351.07 |
347.57 |
99.09 |
106.34 |
最大延迟(毫秒) |
1889.96 |
1898.58 |
19711.29 |
12999.64 |
最小延迟 |
251.02 |
204.39 |
759.54 |
678.3 |
平均延迟 |
729.12 |
736.51 |
2582.79 |
2406.57 |
95%百分比取值 |
943.16 |
960.30 |
3773.42 |
3386.99 |
|
|
|
|
|
256线程2小时压测
|
DRDS |
PolarDB |
||
CPU |
1c |
12c |
1c-公网 |
12c-公网 |
时长(秒) |
7200 |
7200 |
7200 |
7200 |
读次数 |
34661564 |
35602952 |
9333590 |
10897208 |
写次数 |
9903304 |
10172272 |
2666740 |
3113488 |
其他次数 |
4951652 |
5086136 |
1333370 |
1556744 |
总次数 |
49516520 |
50861360 |
13333700 |
15567440 |
事务数 |
2475826 |
2543068 |
666685 |
778372 |
343.84 |
353.18 |
92.57 |
108.08 |
|
最大延迟 |
5311.81 |
2217.48 |
33797.58 |
13401.63 |
最小延迟 |
119.50 |
238.49 |
698.30 |
811.58 |
平均延迟 |
744.51 |
724.83 |
2765.13 |
2368.29 |
95%百分比取值 |
960.30 |
943.16 |
4128.91 |
3326.55 |
|
|
|
|
|
考虑到网络环境的延迟,修改网络环境同为华北2后进行压测:
256线程1小时压测
|
DRDS |
PolarDB |
||
CPU |
1c |
12c |
12c-公网 |
12c-内网 |
时长(秒) |
3600 |
3600 |
3600 |
3600 |
读次数 |
17697400 |
17520090 |
5362448 |
11726722 |
写次数 |
5056400 |
5005740 |
1532128 |
3350492 |
其他次数 |
2528200 |
2502870 |
766064 |
1675246 |
总次数 |
25282000 |
25028700 |
7660640 |
16752460 |
事务数 |
1264100 |
1251435 |
383032 |
837623 |
TPS |
351.07 |
347.57 |
106.34 |
232.61 |
最大延迟(毫秒) |
1889.96 |
1898.58 |
12999.64 |
28001.15 |
最小延迟 |
251.02 |
204.39 |
678.3 |
24.33 |
平均延迟 |
729.12 |
736.51 |
2406.57 |
1100.39 |
95%百分比取值 |
943.16 |
960.30 |
3386.99 |
3095.38 |
|
|
|
|
|
256线程2小时压测
|
DRDS |
PolarDB |
||
CPU |
1c |
12c |
12c-公网 |
12c-内网 |
时长(秒) |
7200 |
7200 |
7200 |
7200 |
读次数 |
34661564 |
35602952 |
10897208 |
24875368 |
写次数 |
9903304 |
10172272 |
3113488 |
7107248 |
其他次数 |
4951652 |
5086136 |
1556744 |
3553624 |
总次数 |
49516520 |
50861360 |
15567440 |
35536240 |
事务数 |
2475826 |
2543068 |
778372 |
1776812 |
TPS |
343.84 |
353.18 |
108.08 |
246.75 |
最大延迟 |
5311.81 |
2217.48 |
13401.63 |
17399.29 |
最小延迟 |
119.50 |
238.49 |
811.58 |
23.46 |
平均延迟 |
744.51 |
724.83 |
2368.29 |
1037.43 |
95%百分比取值 |
960.30 |
943.16 |
3326.55 |
2985.89 |
|
|
|
|
|
结论:
数据显示两个实例的DRDS的效果优于一主一从polarDB。通过内网访问可以大幅度提高polarDB的表现,但是在多项观测值上表现仍然不及DRDS。
不足
- 没有观测CPU性能。
- 没有考虑join操作。
- 实验样本较少。
- 没有考虑低数据量下的表现。
- 配置上DRDS优于PolarDB。
参考:
https://yq.aliyun.com/articles/27835?spm=5176.10695662.1996646101.searchclickresult.570016a36w3zBS
https://blog.csdn.net/oahz4699092zhao/article/details/53332105
脚本:
#/bin/sh #/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua path=/opt/dev/sysbench post_fix=`date +"%Y%m%d%H%M"` threads=256 core=12c total_time=120 db=polardb db_host=polardb.rds.aliyuncs.com db_port=3306 db_usr=sbtest db_password=password tb_size=10000000 log_name=${path}/log/sysbench_${core}_${db}_${threads}_${total_time}_${post_fix}.log echo ${log_name} START `date +"%Y-%m-%d %H:%M:%S"` #prepare #sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-host=${db_host} --mysql-port=${db_port} --mysql-user=${db_usr} --mysql-password=${db_password} --oltp-test-mode=complex --oltp-tables-count=10 --oltp-table-size=${tb_size} --threads=${threads} --time=120 --report-interval=10 prepare #process sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-host=${db_host} --mysql-port=${db_port} --mysql-user=${db_usr} --mysql-password=${db_password} --oltp-test-mode=complex --oltp-tables-count=10 --oltp-table-size=${tb_size} --threads=${threads} --time=${total_time} --report-interval=60 run > ${log_name} #cleanup #sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-host=${db_host} --mysql-port=${db_port} --mysql-user=${db_usr} --mysql-password=${db_password} --oltp-tables-count=10 cleanup echo ${log_name} END `date +"%Y-%m-%d %H:%M:%S"`
相关推荐
阿里云的数据库体系在不断发展和演进中,其核心产品之一是POLARDB数据库,它体现了云数据库的最新技术和设计理念。以下将详细阐述云数据库的演化历程以及POLARDB的关键特性与技术创新。 首先,云数据库的发展经历了...
它旨在解决数据存储容量、并发吞吐和复杂计算效率的问题,支持RDS for MySQL以及POLARDB for MySQL这两种存储引擎。DRDS的核心设计理念是在保持稳定可靠的同时,实现高度可扩展和持续可运维,以满足用户在云计算环境...
当业务发展到一定规模,单表数据量过大,查询效率会显著降低,这时就需要通过分库分表来分散数据和压力。DRDS提供了自动的分片策略,可以根据自定义的分片键进行数据分布,实现水平扩展。 DRDS支持多种分片策略,如...
综上所述,DRDS作为阿里云提供的一款高性能、高可用性的分布式数据库服务,能够帮助企业有效解决大规模数据存储和处理的问题。通过其丰富的特性和灵活的配置选项,使得它成为了很多企业在面对数据量激增和业务扩展时...
DRDS(Distributed Relational Database Service,分布式关系型数据库服务)是一种分布式数据库中间件,旨在简化分布式数据库事务的管理和维护。在数据库系统中,事务是一组操作,这些操作要么全部成功,要么全部...
DRDS旨在解决传统单机关系型数据库在扩展性和性能上的局限性,具有分布式、弹性伸缩、高性能以及高度可控的安全性等特点。 #### 二、DRDS的关键特性 1. **水平拆分**:DRDS提供了多种适合OLTP业务的水平拆分策略,...
首先,DRDS产品概要中介绍了分布式关系型数据库DRDS产品的特点和优势。 DRDS产品是一种基于云计算的分布式关系型数据库解决方案,能够满足企业对高性能、可扩展性和高可用性的需求。 其次,业务面临的问题中提到了...
DRDS通过将单一的大型数据库横向拆分为多个小数据库,以实现水平扩展,提高系统的并发处理能力和数据存储能力。 DRDS实例(DistributeRelationalDatabaseInstance)是DRDS服务的基础单位,它是一组独立占用物理资源...
DRDS能够帮助用户实现数据的自动分片,提升查询效率,同时通过读写分离策略减轻主库压力,确保服务的稳定性和响应速度。 在服务条款方面,用户在使用DRDS前需要仔细阅读阿里云官网上的相关规范、规则、使用流程和...
- **适用场景**:对于那些不需要独占DRDS实例、对处理能力要求不高的用户,如用于功能性测试的场景,且对性能没有特别要求的情况。 2. **专享实例**:专享实例为用户提供独占的DRDS实例,提供多种规格以适应不同...
* 高性能:DRDS能够处理大规模数据的高并发读写操作,提供高性能的数据存储和查询服务。 * 可扩展性:DRDS支持水平扩展,能够根据实际需要动态添加或删除节点,满足业务增长的需求。 * 高可用性:DRDS提供了高可用的...
阿里巴巴中间件高级技术专家励强(君瑜) 在2017杭州云栖大会中做了题为《分布式数据库DRDS全新升级》的分享,就分布式数据库DRDS近年发展历程,场景覆盖介绍,HiStore高性能列式存储引擎,分布式数据库DRDS2018年全面...
该命令会显示当前DRDS实例中执行时间最长的前10个SQL语句,包括其执行时间、影响行数和具体的SQL语句内容。这有助于开发者定位并优化性能瓶颈。 **2. 连接DRDS服务** 连接DRDS服务推荐使用mysql命令行工具,参数中...
此外,分布式关系型数据库 DRDS 还需要考虑容量和访问均衡、事务边界、常用查询优化、异构索引和简单性策略等多个方面。 数据均衡度是分布式关系型数据库 DRDS 的一个关键因素,它直接影响着系统的性能和可扩展性。...
分布式关系型数据库服务(Distributed Relational Database Service...DRDS 兼容 MySQL 协议和语法,支持分库分表、平滑扩容、服务升降配、透明读写分离和分布式事务等特 性,具备分布式数据库全生命周期的运维管控能力
分布式关系型数据库服务...DRDS 高度兼容 MySQL 协议和语法,支持自动化水平拆分、在线平滑扩缩容、弹性扩展、透明读写分离,具备数据库全生命周期运维管控能力。DRDS 前身为淘宝 TDDL,是近千核心应用首选组件。
* 数据库升级和维护:DRDS提供了多种升级和维护工具,帮助用户保持数据库系统的稳定运行。 六、DRDS安全 DRDS安全主要包括以下几个方面: * 认证和授权:DRDS支持多种认证和授权机制,帮助用户保护数据库安全。 *...
DRDS(分布式关系型数据库服务)是阿里巴巴云服务中提供的关系数据库云服务,它能够帮助用户进行水平扩容,具体是指通过分库分表技术,使得数据库能够处理更多的数据量和更频繁的查询。该技术是针对大规模数据处理...
阿里云分布式关系型数据库DRDS是一个功能强大且灵活的分布式关系型数据库解决方案,可以满足大规模数据存储和处理的需求。通过选择合适的拆分维度、缩小事务边界、优化常用查询、保持简单和选择合适的应用连接池,...